gpt4 book ai didi

prolog - Prolog 中的 “Syntax error: Operator expected”

转载 作者:行者123 更新时间:2023-12-02 09:59:46 25 4
gpt4 key购买 nike

我有一个表示 Prolog 中数据流的图形结构。

  • 我有一条从节点 1 到 2、1 到 3 等的边。
  • 变量 x 在节点 1 中定义,变量 t 在节点 4 中定义,依此类推。
  • 变量 d 用于节点 4,变量 x 用于节点 7,等等。

函数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 的规则时,我收到语法错误:需要运算符。为什么?

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 ] ) .

最佳答案

删除边缘和左括号之间的空格。

空格分隔项,因此 Prolog 会认为是一个运算符,而不是复合项的仿函数。

关于prolog - Prolog 中的 “Syntax error: Operator expected”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6082779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com