很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。为了帮助澄清这个问题,以便它可以重新打开, visit the help center 。
10年前关闭。
如果您定期编写 Prolog 程序,您可能拥有自己一直依赖的谓词库。一些 Prolog 系统带有一组丰富的预定义谓词,而另一些则没有。有些系统有库,但它们大多与其他系统不兼容。此外,许多现有的库包含许多很少需要的谓词。但是,有几个谓词“应该”始终存在。然后,自 11 月 like this 和 Cor.2 ( draft ) 以来发生了一些进展。为什么不在这里呢?
那么你最喜欢的谓词是什么?即谓词,未在 ISO 核心中定义。
开始: between/3
, member/2
, length/2
, dif/2
, 0x2518122413 ...
对于 DCG: maplist/2
、 seq//1
、 iseq//1
。
编辑:Prolog 序言的初稿可以在 here 找到!
编辑:如果您希望重新打开此问题,请投票重新打开,但也有助于重新表述问题,以免再次关闭。
最佳答案
很好的问题。除了 member/2
、 length/2
、 maplist/2
(您已经建议)之外,我还推荐 transpose/2
,就像在 Haskell 中一样。还有 memberchk/2
、 select/3
和 append/3
。为了帮助用户进行调查,您能否提供一个 Prolog 程序,该程序可以逐项处理给定的 Prolog 文件(逐个子句),记录它定义的谓词,跟踪它调用的谓词,并从中(可能可选地)减去它显式导入的库提供的谓词?在多个源文件上运行这样的程序可以为 Prolog 的有用“prolog”库提供一个很好的起点。
关于prolog - Prolog 的序言?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6454022/