首页 > 解决方案 > 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-“树”变体,这对我来说更有意义......

在此处输入图像描述

标签: prolog

解决方案


推荐阅读