阻塞
Clojure 的基于延续的逻辑编程库。
用法
例子:
( require '[clog.core :refer :all ])
( defn append [xs ys zs]
( match [xs zs]
[() ys] succeed
[( lcons x xs') ( lcons x zs')] ( append xs' ys zs')))
( run
( fresh [x y]
( append x y [ 1 2 3 4 5 ])
( return [x y])))
; => ([() [1 2 3 4 5]] [(1) [2 3 4 5]] [(1 2) [3 4 5]] [(1 2 3) [4 5]] [(1 2 3 4) [5]] [(1 2 3 4 5) []])
执照
版权所有 :copyright: 2014 吉田三四郎。
在 Ecl
1