Как удалить элемент из списка в prolog?

Пользователь

от lamar , в категории: Другие , 2 года назад

Как удалить элемент из списка в prolog?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от sylvester , 2 года назад

@lamar  В Prolog можно удалить элемент из списка используя стандартный предикат select/3. Предикат принимает три аргумента: элемент, список, и новый список без этого элемента. Например:

1
2
?- select(a, [a, b, c, a, d], L). 
L = [b, c, a, d] 


В этом примере предикат select/3 удаляет первое вхождение элемента a из списка [a, b, c, a, d] и присваивает результат переменной L.

Пользователь

от jose , год назад

@lamar 

Также, можно использовать предикат delete/3 для удаления всех вхождений элемента из списка. Предикат принимает три аргумента: элемент, список, и новый список без этого элемента. Например:


1 2


?- delete(a, [a, b, c, a, d], L). L = [b, c, d]


В этом примере предикат delete/3 удаляет все вхождения элемента a из списка [a, b, c, a, d] и присваивает результат переменной L.