Tengo esta estructura de gráfico que representa el flujo de datos en Prolog."Error de sintaxis: operador esperado" en Prolog
- tengo un borde desde el nodo 1 a 2, 1 a 3, etc.
- x variable se define en el nodo 1, t variable en el nodo 4, etc.
- Variable d se utiliza en el nodo 4, variable x en el nodo 7, etc.
La función definition_clear_path
debe calcular el definition-clear path de cualquier variable.
Cuando ejecuto esto me sale el siguiente error:
definition_clear_path/3: Undefined procedure: definition_clear_path1/4
However, there are definitions for:
definition_clear_path/3
Cuando entro en la regla para definition_clear_path1
de la terminal me sale Syntax error: Operator expected
. ¿Por qué?
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 ]) .
Si pone definition_clear_path al final, ¿el error desaparece? –
No, el mismo error. –