Я пытаюсь удалить элемент в списке. Мой код работает, но он не удаляет символ во вложенном списке.Пролог: Удаление атома во вложенных списках
Во втором-последнем правиле я пытаюсь проверить, является ли следующий элемент списком. Что я делаю не так?
del(Symbol, [], []) :-
!.
del(Symbol, [Symbol|Tail], Result) :-
!,
del(Symbol, Tail, Result).
del(Symbol, [[List]|Tail], Result) :-
!,
del(Symbol, List, Result2),
append([List], Result2, Result).
del(Symbol, [Other|Tail], Result) :-
!,
del(Symbol, Tail, Result2),
append([Other], Result2, Result).
Пожалуйста, покажите конкретные запросы, которые вы ожидаете, чтобы преуспеть (вместе с ответами, которые вы хотите получить). – repeat
Какова конкретная форма «вложенных» списков? Что-то регулярное, как матрицы (обычно представленные в Prolog как списки списков типа '[[a, b, c], [d, e, f]]'), возможно? – repeat