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