我试图在Clojure中使用Mini-Kanren的实现。但是一直在努力理解cond-a cond-u和cond-e之间的区别。我似乎对Cond-E很清楚,但是对Cond-A和Cond-U的理解是安静的。

Cond-E采用一组目标,然后尝试每个目标... IE尝试所有成功的分支机构。

cond-a和cond-u违反了与第一个谓词成功并返回之后所有可能的成功统一的分支机构的承诺。尽管cond-u仅返回第一个成功的统一...但是,当我使用它时,这种理解似乎不正确。有人可以帮助我澄清这种理解。

有帮助吗?

解决方案

Cond-E给出了所有分支机构的所有答案

康德(Cond-i)给出了每个答案,但交错了。

cond-a只给出第一个成功分支机构的答案

cond-u仅给出第一个成功分支的第一个答案

其他提示

我只是想让自己的头脑围绕这些问题。有一个缩短的计划实施Sokuza-Kanren 有几句话,我今晚会读。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top