首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在prolog中测试二叉树

如何在prolog中测试二叉树
EN

Stack Overflow用户
提问于 2016-12-03 16:43:47
回答 1查看 159关注 0票数 1

我想测试这个prolog程序:

代码语言:javascript
复制
binary_tree(void).

binary_tree(tree(_Element,Left,Right)):-binary_tree(Left),binary_tree(Right).

test(tree(a,tree(b,tree(d,void,void),void),tree(c,void,void))).

当我使用以下命令执行它时:

代码语言:javascript
复制
test(X), binary_tree(X).

我得到了

代码语言:javascript
复制
X = tree(a, tree(b, tree(d, void, void), void), tree(c, void, void)).

(我应该换成"true“)

我做错了什么?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-12-03 19:28:40

谁说你应该换成true呢?对Prolog谓词的调用可能成功,也可能失败。在成功时,它们会用变量替换来回答,就像您的例子一样。您的Prolog系统的答案显示您的测试成功,正如您所期望的那样。

因为查询不包含任何变量,所以如果不能给出变量替换,通常只会得到true。如果查询失败,您将得到falsefail,但不会进行变量替换。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40945905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档