小编use*_*302的帖子

结构(差异列表)Prolog

这个问题涉及书中第3章的内容:Prolog,Clocksin和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).
Run Code Online (Sandbox Code Playgroud)

在许多在线教程中,使用了以下使用" - "的格式,例如::

append([ A , B , C | R1 ] – R1 , [ D , E | R2 ] – R2 , R3)
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 这两个表示之间有什么区别(使用 - 而不是使用它)

  2. 在哪些情况下最好使用它们中的每一种?

谢谢

prolog dcg difference-lists

5
推荐指数
3
解决办法
461
查看次数

标签 统计

dcg ×1

difference-lists ×1

prolog ×1