Prolog附加/ 3

示例

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.