Я новичок в Прологе и пытаюсь создать функцию, которая просто удалит все экземпляры элемента из списка. Следующий код - это то, что у меня есть:
remove([H|T], E, L2) :- (\+ ([H|T] == []) ->
(H == E
-> remove(T, E, L2)
; append(L2, H, L2), remove(T, E, L2)
)
; append(L2, [])
).
Когда я запускаю этот код на:
remove([1,2,3,4,5], 3, L2).
я получаю ошибку:
ERROR: Out of global stack
Может ли кто-нибудь указать мне, почему у меня возникает эта проблема?