У меня есть предикат m(L,L)
, и я хочу, чтобы он возвращал список, который он принимает. Код такой:
m([],[]).
m([H|T],[H|L]) :- m(T,L).
Когда я пытаюсь использовать его с этим примером:
m([1,2,3,4,5,6,7,8,9,10],L)
Я получаю это как ответ:
L = [1, 2, 3, 4, 5, 6, 7, 8, 9|...].
(Я заметил, что если я попробую с меньшим количеством элементов, все будет в порядке.) Почему это происходит, а список не завершен?
Как я могу этого избежать?
Извините, если это действительно глупый вопрос, но я искал в Интернете и не смог найти никакой документации, которая могла бы помочь мне понять... Спасибо!