Prolog 序言:顶层:未定义的过程(简单树)

Prolog 序言:顶层:未定义的过程(简单树),prolog,Prolog,您好,我在Prolog中有一个简单的家庭作业,我遇到了以下错误: 错误:顶层:未定义过程:根/1(DWIM无法纠正目标) 文件中的代码: node(3). node(1). node(2). node(6). node(5). edge(3,1). edge(1,2). edge(3,6). edge(6,5). root(X ):- node( X ),not edge(X , _). leaf(X):- node(X) ,not edge(X, _ ). inte

您好,我在Prolog中有一个简单的家庭作业,我遇到了以下错误:

错误:顶层:未定义过程:根/1(DWIM无法纠正目标)

文件中的代码:

 node(3).
 node(1).
 node(2).
 node(6).
 node(5).
 edge(3,1).
 edge(1,2).
 edge(3,6).
 edge(6,5). 
 root(X ):- node( X ),not edge(X , _).
 leaf(X):- node(X) ,not edge(X, _ ).
 internal_node( X ):- edge( X , _ ),  edge( _ , X ).
我在以下情况下得到错误: 根(3)。 叶(5)。 但不是在以下情况下: 内部_节点(1)


谢谢,

您在第一次声明中有一个逻辑错误,请尝试此操作,它应该可以工作:

 root(X ):- node( X ),\+ edge(_ , X).
      leaf(X):- node(X) ,\+ edge(X, _ ).
      internal_node( X ):- edge( X , _ ),  edge( _ , X ).

确定您没有收到类似
语法错误:操作员应使用
而不是
的错误消息?将其替换为
\+
两次。没有语法错误,我将其替换为:根(X):-node(X),\+edge(X,\)。同样的错误。@false是刚刚再次检查,仍然给我一个错误,但是使用Z,Kal代码它可以工作,无论如何谢谢你的帮助