【发布时间】:2019-01-08 16:03:31
【问题描述】:
我有一个带有两个参数的谓词,其中第一个参数可以是复合参数,第二个参数始终是 B。我还定义了一些新的运算符,例如 + 和 & 。
pvc(A, B) :- somestuff(A, B).
用户可以在这里输入类似pvc((x+y)&(A+b), B)的内容。
作为 Prolog 的初学者,我想做的是将复合 A 转换为全小写,并用新的 AN 调用 somestuff。所以应该是somestuff((x+y)&(a+b), B)。
我尝试了类似pvc(A, B) :- downcase_atom(A,AN),somestuff(AN, B). 的方法
但这似乎不是正确的方法。我将不胜感激。
【问题讨论】:
-
请注意,如果你真的写了
A+b,Prolog 会将 A 解释为一个变量,你无法从它返回到a,所以把它写成一个大写的原子而是使用单引号:'A'.