在Prolog中断言数字谓词

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

在Prolog中是否有可能断言表示数字的事实? 例如,我想使用一个谓词
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))。