它表示预期会出现错误操作符。我知道这个语法错误在第5行,但我无法弄清楚。我用** thx强调了这一行。
action(X : Y,0 : Y):-X>0.
action(X : Y,X : 0):-Y>0.
action(X : Y,4:Y):-X<4.
action(X : Y,X : 3):-Y<3.
**action(X : Y,4 : Z):- X<4, Z is Y−(4−X), Z>=0.**
Path(X):-
path(0 : 0,[0 : 0],X).
答案 0 :(得分:2)
Prolog谓词名称必须以小写字母开头。正如@CapelliC指出的那样,Path(X) :0-...
将成为一个问题。
但是第5行的语法错误是因为您可能从在线或电子书中复制/粘贴此代码。在您的表达式中,Y−(4−X)
这些−
符号不是弊端,而是其他看起来像弊端的符号(可能是EM破折号)。尝试手动重新输入第5行,问题就会消失。
这是一个问题:
Y−(4−X)
这个是正确的:
Y-(4-X)
如果仔细观察,你可以看到短划线长度的细微差别。第二个示例是实际的破折号或减号(ASCII代码十六进制2d
)。破折号的第一个示例是特殊字符(十六进制转储显示字符代码59 88 92
)。这是从电子书或其他电子文档复制/粘贴代码的问题,因为有几个字符用于视觉方便,而不是语言所需的特定字符。
答案 1 :(得分:1)
错误是
之后的条款Path(X):-
...
应该是
path(X):-
...