Skip to content

Commit

Permalink
changing README to conform to contrib standard
Browse files Browse the repository at this point in the history
  • Loading branch information
fogus committed Aug 8, 2012
1 parent d478286 commit 2de690c
Showing 1 changed file with 51 additions and 48 deletions.
99 changes: 51 additions & 48 deletions README.md
Original file line number Original file line Diff line number Diff line change
@@ -1,4 +1,5 @@
# clojure.core.unify clojure.core.unify
========================================


core.unify is a Clojure contrib library providing the following features: core.unify is a Clojure contrib library providing the following features:


Expand All @@ -10,71 +11,73 @@ core.unify is based on a library named Unifycle, found at http://github.com/fogu


*[more information](http://fogus.me/fun/unifycle)* *[more information](http://fogus.me/fun/unifycle)*


Example
-------


```clojure
(unifier '((?a * ?x ** 2) + (?b * ?x) + ?c)
'(?z + (4 * 5) + 3))

;=> ((?a * 5 ** 2) + (4 * 5) + 3)
```


Getting core.unify Releases and Dependency Information
------------------ ========================================

Latest stable release: 0.5.3


You can use core.unify in your [Leiningen](https://github.com/technomancy/leiningen) and [Cake](https://github.com/flatland/cake) projects with the following `:dependencies` directive in your `project.clj` file: * [All Released Versions](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.clojure%22%20AND%20a%3A%22core.unify%22)


[org.clojure/core.unify "0.5.2"] * [Development Snapshot Versions](https://oss.sonatype.org/index.html#nexus-search;gav~org.clojure~core.unify~~~)


For Maven-driven projects, use the following slice of XML in your `pom.xml`'s `<dependencies>` section: [Leiningen](https://github.com/technomancy/leiningen) dependency information:

[org.clojure/core.unify "0.5.3"]

[Maven](http://maven.apache.org/) dependency information:


<dependency> <dependency>
<groupId>org.clojure</groupId> <groupId>org.clojure</groupId>
<artifactId>core.unify</artifactId> <artifactId>core.unify</artifactId>
<version>0.5.2</version> <version>0.5.3</version>
</dependency> </dependency>



Example Usage
========================================

```clojure
(use 'clojure.core.unify)

(unifier '((?a * ?x ** 2) + (?b * ?x) + ?c)
'(?z + (4 * 5) + 3))

;=> ((?a * 5 ** 2) + (4 * 5) + 3)
```

Refer to docstrings in the `clojure.core.unify` namespace.


Enjoy!


Places
------


* [Source code](https://github.com/clojure/core.unify) Developer Information
* [Ticket system](http://dev.clojure.org/jira/browse/UNIFY) ========================================
* [Examples and documentation](http://fogus.me/fun/unifycle) -- in progress


* [GitHub project](https://github.com/clojure/core.unify)


Plans and ideas * [Bug Tracker](http://dev.clojure.org/jira/browse/UNIFY)
---------------


The following capabilities are under design, development, or consideration for future versions of core.unify: * [Continuous Integration](http://build.clojure.org/job/core.unify/)


* High-performant unification based on unrolling recursive backtracking into polymorphic calls * [Compatibility Test Matrix](http://build.clojure.org/job/core.unify-test-matrix/)
* Iterative unification option
* Boolean unification
* Implicit variable recognition option(s)
* More examples
* More documentation


More planning is needed around capabilities not listed nor thought of.




References Change Log
---------- ====================


- *PAIP* by Peter Norvig * Release 0.5.3 on 2012.05.25
- [Michał Marczyk's impl](http://gist.github.com/374764) * Added `variable?` function
- *The Art of Prolog* by Leon Sterling and Ehud Shapiro * Unification of seqs of differing lengths fails (as expected)
- *Programming Languages: Application and Interpretation* by Shriram Krishnamurthi [here](http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/) * Release 0.5.2 on 2012.01.08
- [CL-unification](http://common-lisp.net/cgi-bin/viewcvs.cgi/cl-unification/?cvsroot=cl-unification) * Removed reflection warnings
- *The Scheme Programming Language* by Kent Dybvig * Release 0.5.1 on 2011.10.11
- *Problem-solving Methods in Artificial Intelligence* by Nils Nilsson * Rolled in basis of Unifycle
- <http://books.google.com/books?id=UjrJDvu2fxkC&lpg=PA53&ots=EVEddEEeqQ&dq=occurs-check%20table&pg=PA53#v=onepage&q&f=false>


License
-------


Copyright © 2011 Rich Hickey Copyright and License
========================================


Licensed under the EPL. (See the file epl.html.) Copyright (c) Rich Hickey and Michael Fogus, 2012. All rights reserved. The use and distribution terms for this software are covered by the Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) which can be found in the file epl-v10.html at the root of this distribution. By using this software in any fashion, you are agreeing to be bound bythe terms of this license. You must not remove this notice, or any other, from this software.

0 comments on commit 2de690c

Please sign in to comment.