Пролог XSB: написать свой собственный набор функций

Мне нужно получить из ввода с клавиатуры (list) список без дубликатов, но без использования встроенного setof (или любых других встроенных функций) в прологе XSB.

Как мне написать свою собственную функцию setof?

Ввод и вывод должны выглядеть так:

|?-list([a,b,c,d,a,b,c,d,e,f],L).  

L=[a,b,c,d,e,f];

Заранее спасибо.

1 ответ

Решение

Используя member/2 это так просто: просто сделайте копию каждого элемента с рекурсивным списком /2, проверив заголовок списка ввода, которого еще нет в списке целей. Member / 2 может выполнить проверку, вам нужно написать свою собственную... Вся программа должна состоять из 4 строк кода.

Другие вопросы по тегам