пытается создать понимание списка. Что я здесь работаю в SWI Prolog, а также Jekejeke Prolog, но оператор [< -] не работает в Yap. Невозможно выяснить, почему.Что случилось с моим определением оператора Yap?
Пришлите ссылку с/3, findall/3 и maplist/2, так как они не являются частью Yap. Я считаю, что три домашних предиката работают правильно (они делают в Jekejeke Prolog).
Yap 6.2.2, похоже, не в состоянии обработать оператора [< -]. Получает синтаксическую ошибку, непосредственно предшествующую оператору.
DEFINE операторы:
:- op(700, xfx, [ <- ]).
:- op(450, xfx, [ .. ]).
:- op(1100, yfx, [ & ]).
создать шаблон для списка понимания:
Vs <- M..N :-
integer(M),
integer(N),
M =< N,
betWeen(M, N, Vs).
Vs <- {Var & Dec & Pred} :-
findAll(Var, mapList(call, [Dec, Pred]), Vs).
использовать шаблон для создания списка простых чисел из М через N включительно. Верните список как P.
primes(M, N, P) :- P <- { X & X <- M..N & prime(X) }.
END.
Невозможно воспроизвести. Может быть, у вас есть еще несколько опсов? Я наткнулся на 'betWeen', который должен иметь' w' вместо этого. – false