List XSB Prolog:编写我自己的函数集

List XSB Prolog:编写我自己的函数集,list,prolog,xsb,List,Prolog,Xsb,我需要从键盘输入(列表)中获取一个不重复的列表,但不使用XSB prolog中的inbuild setof(或任何其他inbuild函数) 如何编写自己的函数集 输入和输出应如下所示: |?-list([a,b,c,d,a,b,c,d,e,f],L). L=[a,b,c,d,e,f]; 提前感谢。使用member/2非常简单:只需复制每个元素,使用递归列表/2,检查输入列表的标题,它不在目标列表中。检查可由会员/2执行,您需要编写自己的。。。整个程序应该是4行代码。list(A,B):-

我需要从键盘输入(列表)中获取一个不重复的列表,但不使用XSB prolog中的inbuild setof(或任何其他inbuild函数)

如何编写自己的函数集

输入和输出应如下所示:

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

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

提前感谢。

使用member/2非常简单:只需复制每个元素,使用递归列表/2,检查输入列表的标题,它不在目标列表中。检查可由会员/2执行,您需要编写自己的。。。整个程序应该是4行代码。

list(A,B):-sort(A,B)。
我更新了帖子,我们不能使用任何内置函数,它会使排序与如何编写member/2不符?我知道如何使用member/2,但我认为它也是内置的,还是我错了?这应该是我自己写的。根据
member/2
谓词的存在写一个
list/2
(称之为
mem
has\u element
或未内置的东西),然后写
mem/2
has\u element/2
谓词,这非常简单。