使用连接定义成员函数

时间:2017-08-07 06:23:18

标签: prolog

如何使用连接关系定义成员(X,L)?任何人都可以解释这个方法吗?

concatenate([],L,L).
concatenate([X|L],L2,[X|CL]):-concatenate(L,L2,CL).

给出了连接目标

2 个答案:

答案 0 :(得分:1)

在Prolog解释器(命令行,AKA REPL)中尝试使用concatenate / 3对特定查询的行为:

?- L=[1,2,3], concatenate(_,[X|_],L).

这种模式实际上是你需要的......但添加谓词成员/ 2的细节将取决于实际的Prolog实现。

答案 1 :(得分:0)

我称之为member/2 谓词,而不是成员函数, 这听起来像是C++一词。

这是concat_member/2

concat_member( X, Xs ) :- concat( _ , [ X | _ ], Xs ).