Допустим, я хотел бы создать список (L2), добавляя элементы другого списка (L) по одному. Результат должен быть точно таким же, как на входе.
Это глупое задание, но оно поможет мне понять, как пройтись по списку и удалить определенные элементы.
Я собрал следующий код:
create(L, L2) :- (\+ (L == []) -> L=[H|T], append([H], create(T, L2), L2);[]).
позвонив по
create([1,2,3,4], L2)
возвращает
L2 = [1|create([2,3,4], **)\.
, что не является желаемым результатом.