Prolog的序幕?

fal*_*lse 13 iso prolog dcg iso-prolog

如果您定期编写Prolog程序,您可能拥有自己依赖的谓词库.一些Prolog系统带有丰富的预定义谓词,有些则没有.有些系统有库,但它们与其他系统大多不兼容.此外,许多现有的库包含许多很少需要的谓词.但是,有一些谓词"应该"始终存在.然后,有一些进展,因为十一月发生这样Cor.2(草案).为什么不在这里呢?

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

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

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


编辑: Prolog序言的初稿可以在这里找到!
编辑:如果您希望重新打开此问题,请投票重新打开,但也有助于重新制定问题,使其不会再次关闭.

mat*_*mat 5

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