В Scheme функция (map fn list0 [list1 .. listN]) имеет ограничение что в списках должно быть одинаковое количество элементов. Исходя из Python, мне не хватает свободы списка Python ...
Как вы пишете карту процедуры Пролога (List, PredName, Result), которая применяет предикат PredName (Arg, Res) к элементам List и возвращает результат в списке Result? Например: test (N, ...