5
我有这种图形结构表示Prolog中的数据流。在Prolog中出现“语法错误:操作员期望”
- 我有从节点1到2月1日至3日的边缘,等
- 变量X在节点1中所定义,在节点4变量t等
- 变量d是在节点使用4,节点7中的变量x等
功能definition_clear_path
应该计算任何变量的definition-clear path。
当我运行此我得到以下错误:
definition_clear_path/3: Undefined procedure: definition_clear_path1/4
However, there are definitions for:
definition_clear_path/3
当我输入definition_clear_path1
来自终端的规则,我得到Syntax error: Operator expected
。为什么?
edge(1, 2).
edge(1,3).
edge(3,7).
edge(3,4).
edge(4,6).
edge(4,5).
edge(7,x).
def(p,1).
def(e,1).
def(d,1).
def(x,1).
def(c,1).
def(d,4).
def(t,4).
def(c,5).
def(x, 6).
def(c,6).
use(d,3).
use(e,3).
use(d,4).
use(c,4).
use(x,4).
use(t,4).
use(c,5).
use(x,6).
use(c,6).
use(d,6).
use(x,7).
pos_path(X,Y, [X,Y]):- edge(X,Y).
pos_path(Start, End, [Start|T]) :- edge(Start,Mid), pos_path(Mid, End, T).
definition_clear_path(Node , J , Var):- definition_clear_path1(Node , J , Var , [ Node ]) .
definition_clear_path1(B , J, K , F):- edge (B , J).
definition_clear_path1(Node , J , Var , L):-
edge (Node , N1) ,
not(def(Var , N1)) ,
not(use(Var , N1)) ,
definition_clear_path1(N1 , J , Var , [ Node | L ]) .
如果将definition_clear_path放在最后,错误会消失吗? – 2011-05-21 16:04:24
不,同样的错误。 – 2011-05-21 16:23:51