- CLJS-50: Rel relation PersistentHashSet becomes LazySeq after issuing a retraction
- everyo was a pseudo goal, rename to everyg
- add distincto relation, similar to distinctfd but uses !=
- cKanren extensions implemented
- Compatible with ClojureScript master
- users of to-stream should not have to remove failures themselves
- LOGIC-37: The facts and retractions functions do not take the relation's namespace into account when resolving the index.
Fix pattern matching so unification works on maps and sets
- Fix project layout so core.logic can work in both Clojure and ClojureScript applications
- fixed LConsSeq -pr-seq implementation
- Initial support for ClojureScriopt
- Allow retraction of facts
- LOGIC-32: fix unification with sets
- LOGIC-29: fix defrel bug where we were not checking recursively for logic vars
- LOGIC-24: fix regression, simple expression allowed in pattern matching again
- repair logic variable introduction in pattern matching macros
- metadata support for defne and friends
- remove unqualified symbols from defrel and defrel support macros
- default conde style now wraps conde clauses in vectors
- no need to use ?foo in patterns to declare logic variables
- two new non-relational helpers: pred, is
- fix broken all macro
- can now define facts on relations from other namespaces
- fix lingering reference to old namespace in all macro
- removed some redundant unification cases
- improved docstrings, fixed typos
- Consolidate all the useful name spaces into clojure.core.logic
- We now only overload ==, no more need to exclude reify or inc
You can use core.logic in your own projects with:
(ns foo.bar
(:refer-clojure :exclude [==])
(:use clojure.core.logic))