我不明白 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))
你能解释一下这是怎么发生的吗?先感谢您。