【发布时间】:2012-06-29 04:55:13
【问题描述】:
看完 Sussman 的讲座 http://www.infoq.com/presentations/We-Really-Dont-Know-How-To-Compute,我受到启发,想试试 core.logic 和 core.match。我知道的唯一例子是我小时候做过的那些约束问题解决者。这是一个在 SICP 课程中使用的示例,并且在演讲中被提及:
贝克、库珀、弗莱彻、米勒和史密斯住在一栋只有五层楼的公寓的不同楼层。贝克不住在顶层。库珀不住在底层。弗莱彻既不住在顶层也不住在底层。米勒住在比库珀更高的楼层。史密斯不住在弗莱彻家附近的楼层。弗莱彻不住在库珀附近的楼层。大家都住在哪里?
我在 rosettacode 网站上找到了这个: http://rosettacode.org/wiki/Dinesman%27s_multiple-dwelling_problem#PicoLisp
但不太确定如何将其转化为 clojure。我希望有人可以提供使用 core.logic 或 core.match 解决此问题的示例
【问题讨论】:
标签: clojure clojure-core.logic