Пролог 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 строк кода.