【发布时间】:2019-04-05 12:50:24
【问题描述】:
我不明白 run n (x) g0 g1 ... 是如何通过listo来运行的
listo 是这样定义的
(define listo
(lambda (l)
(conde
[(nullo l) #s)]
[(pairo l)
(fresh (d)
(cdro l d)
(listo d))]
[else #u])))
第 29 页第 14 节的理性计划者说代码
(run 5 (x)
(listo (a b c . x)))
产生结果
(()
(_.0)
(_.0 _.1)
(_.0 _.1 _.2)
(_.0 _.1 _.2 _.3))
你能解释一下这是怎么发生的吗?提前谢谢你。
【问题讨论】:
-
在前面的 28 页中有很多详细的解释。你审查过那些吗? (这本书看起来很简单,但你不能急于阅读。我经常问“什么?”,需要备份一下。)