Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

FsLogic: A port of MiniKanren

MiniKanren is a logic programming language embedded in Scheme, originally. The most popular port is probably Clojure's core.logic.

You can learn much more about it at minikanren.org.

This port aims to be philosophically close to the original implementation of MiniKanren, that is, it should be simple to read and understand, perhaps in favor of doing optimizations like convert everything to continuation passing style. That said, hopefully it will remain fast enough to be used for real applications.

The main difference with original MiniKanren is that because F# is typed, the embedded logic programming language is also typed. For example, it isn't statically possible to unify a list<int> with an int or even a list<bool> (whhich would not unify at runtime anyway).

In time I'd like to take some of the extensions on board, like alpha-kanren and I'm especially interested in cKanren.

For now, have a look at the tests for examples.

About

A port of MiniKanren to F# - embedded, typed logic programming

Resources

Releases

No releases published

Packages

No packages published

Languages