这个问题参考了本书第 3 章中的材料:Programming in Prolog, Clocksin and Mellish, Ed 5
在本书的第 72 页中,显示了一个使用差异列表的程序:
partsOf(X,P):- partsacc(X,P,Hole) , Hole=[].
partsacc(X,[X|Hole],Hole):-basicpart(X).
partsacc(X,P,Hole):- assembly(X,Subparts), partsacclist(Subparts, P, Hole).
partsacclist([],Hole,Hole).
partsacclist([P|T], Total, Hole):- partsacc(P,Total,Hole1), partsacclist(T,Hole1,Hole).
在网上很多教程中,使用“-”的格式如下,例如:
append([ A , B , C | R1 ] – R1 , [ D , E | R2 ] – R2 , R3)
我的问题是:
这两种表示有什么区别(使用 - 和不使用它)
在哪些情况下最好使用它们中的每一个?
谢谢