append([], Bs, Bs). append([A|As], Bs, [A|Cs]) :- append(As, Bs, Cs).
append/3是最知名的Prolog关系之一。它定义了三个参数之间的关系和为真,如果在第三个参数是表示在第一和第二参数指定的列表的级联列表。
值得注意的是,和是典型的好Prolog的代码,append/3可以在使用几个方向:它可用于:
追加两个完全或部分实例化的列表:
?- A = [1, 2, 3], B=[4, 5, 6], append(A, B, Y)
Output:
A = [1, 2, 3],
B = [4, 5, 6],
Y = [1, 2, 3, 4, 5, 6].
检查的关系是否是三个完全实例名单属实:
?- A = [1, 2, 3], B = [4, 5], C = [1, 2, 3, 4, 5, 6], append(A, B, C)
Output:
false
生成所有可能的方式,以两个列表追加到给定的列表:
?- append(A, B, [1, 2, 3, 4]).
Output:
A = [],
B = [1, 2, 3, 4] ;
A = [1],
B = [2, 3, 4] ;
A = [1, 2],
B = [3, 4] ;
A = [1, 2, 3],
B = [4] ;
A = [1, 2, 3, 4],
B = [] ;
false.