Я пытаюсь реализовать foldl1 в прологе без использования встроенного предиката foldl.
Мой код производит Syntax error: Operator expected
:
foldl1(_, [E], E).
foldl1(Predicate, [X,Y|Z], Result) :-
call(Predicate(X), Y, Ans),
foldl1(Predicate, [Ans|Z], Result).
Я ожидаю:
?- foldl1(concat,['a','b','c','d'],X).
X = abcd.
Спасибо!