在Prolog中断言数字谓词
在Prolog中是否有可能断言表示数字的事实? 例如,我想使用一个谓词在Prolog中断言数字谓词,prolog,Prolog,在Prolog中是否有可能断言表示数字的事实? 例如,我想使用一个谓词distance/2,并断言像distance(town1,city2)=1200这样的事实 distance(town1,city2)=1200术语是术语'='(distance(town1,city2),1200)的语法糖,因为(=)/2是标准的Prolog中缀运算符(=)/2也是标准的统一内置谓词。在大多数Prolog系统中,用户无法重新定义内置谓词。因此,您不能为它们断言子句,因为这相当于重新定义谓词。Carlo建议使
distance/2
,并断言像distance(town1,city2)=1200这样的事实 distance(town1,city2)=1200
术语是术语'='(distance(town1,city2),1200)
的语法糖,因为(=)/2
是标准的Prolog中缀运算符(=)/2
也是标准的统一内置谓词。在大多数Prolog系统中,用户无法重新定义内置谓词。因此,您不能为它们断言子句,因为这相当于重新定义谓词。Carlo建议使用distance/3
谓词可能是最好的解决方案。no,使用assert(distance(town1,city2,1200))。