Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A logic programming library for Clojure & ClojureScript

License

NotificationsYou must be signed in to change notification settings

clojure/core.logic

Repository files navigation

A logic programming library for Clojure & ClojureScript. core.logicoffers Prolog-like relational programming, constraint logicprogramming, and nominal logic programming for Clojure. At its heartis an original implementation of miniKanren as described in WilliamByrd's dissertationRelational Programming in miniKanren: Techniques, Applications, and Implementationsas well as the extensions described incKanren andαKanren. Itis designed to be easily extended to forms of logic programming beyondthe ones provided.

Releases and dependency information

This project follows the version scheme MAJOR.MINOR.PATCH where each component provides some relative indication of the size of the change, but does not follow semantic versioning. In general, all changes endeavor to be non-breaking (by moving to new names rather than by breaking existing names).

Latest stable release: 1.1.0

CLI/deps.edn dependency information:

org.clojure/core.logic {:mvn/version"1.1.0"}

Leiningen dependency information:

[org.clojure/core.logic "1.1.0"]

Maven dependency information:

<dependency>  <groupId>org.clojure</groupId>  <artifactId>core.logic</artifactId>  <version>1.1.0</version></dependency>

Example usage

(use 'clojure.core.logic)(run* [q]  (== qtrue));;=> (true)

Running the tests

Assuming you have V8 installed from source:

lein cljsbuild once advd8 resources/tests.js

If you have another JS engine installed use that instead.

Reasoned Schemer

If you wish to work throughThe Reasoned Schemer withcore.logic make sure to look overthisfirst.

If you're interested in using core.logic fromClojureScript lookhere.

For more information & documentation please consult thewiki.

Differences from core.unify

core.unify provides a la carteunification facilities that are not deeply tied into the operation ofa logic engine. While core.logic does provide a similar simple unifierinterface with support for specifying fine-grained constraints, if youhave no need for a logic programming system, core.unify may be abetter fit.

YourKit

YourKit has given an open source license for their profiler, greatlysimplifying the profiling of core.logic performance.

YourKit supports open source projects with its full-featured JavaProfiler. YourKit, LLC is the creator ofYourKit JavaProfiler andYourKit .NETProfiler, innovative and intelligent tools for profiling Java and.NET applications.

Developer information

Copyright and license

Copyright © David Nolen, Rich Hickey & contributors.

Licensed under the EPL (see the file epl.html).

About

A logic programming library for Clojure & ClojureScript

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp