Skip to content
Datalog implemented in minikanren
Scheme Racket
Branch: master
Clone or download
Latest commit 7ad2bd7 Sep 14, 2017
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
fast-mk add racket minikanren implementation Sep 8, 2017
README.md TODOs in README Sep 8, 2017
datafun.rkt start work on datafun.rkt Sep 14, 2017
datalog-interpreter.rkt clean things up Sep 8, 2017
datalog.rkt some work on lists.rkt Sep 14, 2017
defunct-datalog.rkt clean things up Sep 8, 2017
lists.rkt rename length=o to length== Sep 14, 2017
macros.rkt factor out lists.rkt and macros.rkt Sep 9, 2017
sets.rkt faster(?) set== Sep 14, 2017

README.md

Datalog in minikanren

datalog.rkt is an implementation of Datalog (currently, without support for negation) in minikanren. It has many comments and two examples (at the bottom of the file).

defunct-datalog.rkt is an attempted implementation that didn't work out. Not many comments, a few examples.

datalog-interpreter.rkt is a Datalog-without-negation interpreter in plain old Racket, no minikanren. Not many comments, a few examples.

TODOs

  • Implement stratified negation.

  • Maybe rewrite datalog.rkt without all the macros, if Will or other folks find them hard to read.

  • See if there's a way to unify query and query-all; those seem kinda redundant. Maybe there's a way to do the fire-all-rules-at-once thing I was going for in defunct-datalog.rkt, the way datalog-interpreter.rkt does?

You can’t perform that action at this time.