问题描述
- prolog的谓词+的含义及其用法
-
代码:
path(X,Y,Path):- traverse(X,Y,[X],Q),reverse(Q,Path).traverse(X,Y,P,[Y|P]):- connected(X,Y).
traverse(X,Y,V,Path):- connected(X,Z),Z=Y, +(member(Z,V)),traverse(Z,Y,[Z|V],Path).其中,traverse(X,Y,V,Path):- connected(X,Z),Z=Y, +member(Z,V),traverse(Z,Y,[Z|V],Path).
上述规则中有一个谓词为 + /1,如果证明这个目标可以发现,最初的目标失败;如果没有证据可以发现,最初的目标成功。
这句规则在swi-prolog中可以实现,而在visual prolog中不可识别,总是出现如下的情况:
“traverse(X$23,Y$24,V$25,PATH$26) :- connected(X$23,Z$27) , Z$27 = Y$24 , +
Syntax error in parser
Reconsulted from: C:UsersXinxinDesktoppie(1)ExeFILE0.PRO”
在+后面的member就不识别了,这是怎么回事?
我将它改为+(member(Z,V)),加载的时候不会报错,但是这句还是没有起作用,这是为什么?
谢谢!
时间: 2024-12-30 10:27:44