initial installable release
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
(use unify)
|
||||
(import unify :as u)
|
||||
|
||||
(defn rand-nth [e]
|
||||
(get e (math/floor (* (math/random) (length e)))))
|
||||
|
||||
(defn unifications [clause facts context]
|
||||
(if (> (length clause) 0)
|
||||
(let [bindings (keep |(unify (first clause) $ context) facts)]
|
||||
(let [bindings (keep |(u/unify (first clause) $ context) facts)]
|
||||
(mapcat |(unifications (slice clause 1) facts $) bindings))
|
||||
[context]))
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
(selection-strategy possibilities)))
|
||||
|
||||
(defn apply-rule [rule facts context]
|
||||
(let [new-facts (map |(apply-subst context $) (rule :consequent))]
|
||||
(let [new-facts (map |(u/apply-subst context $) (rule :consequent))]
|
||||
(union new-facts facts)))
|
||||
|
||||
(defn step [rules facts]
|
||||
|
@@ -3,7 +3,8 @@
|
||||
:author "Veit Heller"
|
||||
:license "WTFPL"
|
||||
:url "https://github.com/hellerve/kanon"
|
||||
:repo "git+https://github.com/hellerve/kanon.git")
|
||||
:repo "git+https://github.com/hellerve/kanon.git"
|
||||
:dependencies ["https://github.com/andrewchambers/janet-unify"])
|
||||
|
||||
(declare-source
|
||||
:name "kanon"
|
||||
|
Reference in New Issue
Block a user