【问题标题】:Prolog : toplevel: Undefined procedure (simple tree)Prolog:顶层:未定义的过程(简单树)
【发布时间】:2017-01-03 17:21:42
【问题描述】:

你好,我在 Prolog 中有一个简单的家庭作业,我收到了这个错误:

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

The Tree Image

文件中的代码:

 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)。 但不是在: internal_node(1)。

谢谢,

【问题讨论】:

  • 确定您没有收到类似Syntax error: Operator expected 的错误消息,因为您使用了not?将其替换为\+ 两次。
  • 没有语法错误,我替换了它:root(X):- node(X),\+ edge(X, _)。同样的错误。

标签: prolog


【解决方案1】:

你在第一个声明中有一个逻辑错误,试试这个它应该可以工作:

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

【讨论】:

  • @false 是的,刚刚再次检查,仍然给我一个错误,但是使用 Z,Kal 代码它可以工作,无论如何谢谢你的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-22
  • 1970-01-01
相关资源
最近更新 更多