Так что я столкнулся с некоторыми проблемами при (ab?) Использовании lambda.pl.
Я делаю «use_module (библиотека (лямбда))». в первых строках файла, к которому я обращаюсь через ["a.prolog"]. Затем я получаю "неопределенную процедуру () / 3" и после этого немного тарабарщины.
То же самое происходит для любого порядка use_modules. Это происходит независимо от того, загружаю ли я a.prolog через [...], консультируюсь или как скрипт из командной строки. Я сократил сценарий до примера каррирования из кода Россеты https://rosettacode.org/wiki/Currying#Prolog
use_module(library(lambda)).
:- initialization(main, main).
main :-
N = 5, F = \X^Y^(Y is X+N), maplist(F, [1,2,3], L),
print(L).
Не работает.
Однако он работает, если я вручную загружаю «лямбда» в командной строке swipl и сразу же обращаюсь к a.prolog. Тогда цель N = 5, .... работает нормально.
Однако если я сначала проконсультируюсь с a.prolog; затем вручную use_module, а затем запустите запрос, я получаю сообщение об ошибке. Реконсультации не помогают дальше.
Так или иначе, первая команда в приглашении должна быть use_module.
Или у меня совершенно неправильный механизм загрузки? Если да, пожалуйста, извинитесь; но я хотел бы получить подсказку, как решить эту проблему.
F_2
вместоF
. Таким образом вы поясняете, чтоF_2
- это неполная цель, требующая еще двух аргументов. - person false   schedule 28.03.2018