Fset collection library support for cl-kanren-trs.
Switch branches/tags
Nothing to show
Clone or download
Latest commit dacb61a Mar 19, 2013
Permalink
Failed to load latest commit information.
src added fset:map support Mar 19, 2013
t added fset:map support Mar 19, 2013
.gitignore fset:seq support Mar 18, 2013
LICENSE.txt fset:seq support Mar 18, 2013
README.markdown added fset:map support Mar 19, 2013
kanren-fset-test.asd fset:seq support Mar 18, 2013
kanren-fset.asd fset:seq support Mar 18, 2013

README.markdown

Kanren-Fset

Implementation of unification methods to allow Fset collections to operate with cl-kanren-trs (Common Lisp port of miniKanren). Currently supports the fset:seq type (ordered collection) and fset:map type (hash map).

Usage

(ql:quickload "kanren-fset")
(in-package :kanren-trs)

(run nil (q)
  (fresh (x)
    (== x 10)
    (== q (fset:seq x 20))))

;; -> (#[ 10 20 ])

(run nil (q)
      (fresh (x)
        (== (fset:map (:a x)) (fset:map (:a 200)))
        (== q (fset:map (:b 100) (:c x)))))

;; -> (#{| (:B 100) (:C 200) |})

Installation

Clone repository into ~/quicklisp/local-projects, load with (ql:quickload "kanren-fset").

Author

Copyright

Copyright (c) 2013 Stephen A. Goss (steveth45@gmail.com)

License

Licensed under the Modified BSD License.