使用prolog语言解决简单的追加函数

时间:2016-04-24 06:19:52

标签: prolog

当我们在prolog中创建追加函数时,我认为这就是答案。

append([],L,L) 
append([H|T],L,[H|R]):- append(T,L,R).

但我没有明确的含义。请给我这个。什么是角色的含义" L"?目的??? (追加([H | T],L,[H | R]): - 追加(T,L,R)。给我一个对此行的描述)

1 个答案:

答案 0 :(得分:1)

一般来说,你的追加谓词需要3个参数(L1L2L3):

append(L1, L2, L3)

追加会告诉您,L3是否是L1前面附加L2所产生的列表。

对于第一种情况:

append([],L,L)

您给出了追加的基本情况(即,在一些列表L附加的空列表的结果是什么。结果只是原始列表L)。

您的第二个案例告诉您如何证明一些列表[H|T]附加到另一个列表L的前面以创建其他列表[H|R],其中H是其中的一个第一个输入列表和结果列表。

append([H|T],L,[H|R]):- append(T,L,R).

此规则的第二部分说明只有在能够证明列表R是将T(原始输入列表的尾部)附加到{{1}的结果时才会出现这种情况。 }}