Prolog的序幕?

时间:2011-06-23 12:31:47

标签: prolog iso dcg iso-prolog

如果您定期编写Prolog程序,您可能拥有自己依赖的谓词库。一些Prolog系统带有丰富的预定义谓词,有些则没有。有些系统有库,但它们与其他系统大多不兼容。此外,许多现有的库包含许多很少需要的谓词。但是,有一些谓词“应该”始终存在。然后,自11月like thisCor.2draft)以来取得了一些进展。为什么不在这里呢?

那么你最喜欢的谓词是什么?这是谓词,未在ISO核心中定义。

首先:between/3member/2length/2dif/2maplist/2,...

对于DCG:seq//1iseq//1... //0

<小时/> 编辑:可以找到Prolog序言的初稿here
编辑:如果您希望重新打开此问题,请投票重新开启,但也有助于重新制定问题,以便不会再次关闭。

1 个答案:

答案 0 :(得分:4)

非常好的问题。除了member/2length/2maplist/2(您已经建议)之外,我推荐transpose/2,就像在Haskell中一样。还有memberchk/2select/3append/3。为了帮助用户进行调查,您是否可以提供Prolog程序,该程序按术语(逐个子句)处理给定的Prolog文件术语,记录它所定义的谓词,跟踪它调用的谓词,以及从中(可能是可选的)减去它显式导入的库提供的谓词?在几个源文件上运行这样的程序可以为Prolog提供一个有用的“prolog”库的良好起点。