prolog - Prolog 中的 SLD 树中的“返回”
问题描述
我创建了一个简单的 Prolog 程序,我试图弄清楚我们的派生/SLD 树是什么。
a(X) :- b(X), c(X).
b(Y) :- d(Y), e(Y).
c(1).
d(1).
e(1).
下面是我失败的尝试。
这种表示对我来说没有太大意义,因为我不知道如何表示由子句 e(1) 成功匹配的目标 e(1) 和程序第一个子句中的目标 c(x) 之间的转换,现在需要与头部匹配。
边缘标签应该是产生目标之间推导的子句,对吗?
[稍后编辑] 添加了一个新的 SLD-“树”变体,这对我来说更有意义......
解决方案
推荐阅读
- c - 任何人都可以详细解释以下c中的指针程序吗?
- php - 将字符串格式存储在db中的数据转换为对象日期时间
- apache - 导入 .war 文件时出现 Apache 错误。“错误:失败 - 无法启动上下文路径 [/文件夹] 处的应用程序”
- java - 如何转换复杂对象列表并将其表示为值 yaml 图表
- javascript - 在Javascript中使用Symbol.iterable进行迭代时如何检测当前元素是最后一个元素?
- linux - 并行运行命令,如果任何命令使用 wait 失败,则运行失败
- javascript - 显示数组中第一个值的函数,如果再次运行,显示数组的第二个值
- python - 如何在 Django 中获取过滤键和结果元组
- php - 如何在POST php中获取特殊字符'
- android - Android:清单合并失败