当我们在prolog中创建追加函数时,我认为这就是答案。
append([],L,L)
append([H|T],L,[H|R]):- append(T,L,R).
但我没有明确的含义。请给我这个。什么是角色的含义" L"?目的??? (追加([H | T],L,[H | R]): - 追加(T,L,R)。给我一个对此行的描述)
答案 0 :(得分:1)
一般来说,你的追加谓词需要3个参数(L1
,L2
,L3
):
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}的结果时才会出现这种情况。 }}