欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

地图着色——core.logic求解

程序员文章站 2022-05-21 09:23:13
...
记得很久很久之前写过一篇《七周七语言——地图着色》。用core.logic求解下。
地图着色——core.logic求解
            
    
    博客分类: Clojure clojure

依赖包:
[org.clojure/core.logic "0.8.10"]


(use 'clojure.core.logic)

(nth (run 1 [q]
     (fresh [tn ms al ga fl]
            (everyg #(membero % [:red :blue :green]) [tn ms al ga fl])
            (!= ms tn) (!= ms al) (!= al tn)
            (!= al ga) (!= al fl) (!= ga fl) (!= ga tn)
            (== q {:tennessee tn
                   :mississippi ms
                   :alabama al
                   :georgia ga
                   :florida fl})
            )) 0)


输出结果:{:tennessee :blue, :mississippi :red, :alabama :green, :georgia :red, :florida :blue}
相关标签: clojure