faster-minikanren icon indicating copy to clipboard operation
faster-minikanren copied to clipboard

A fast implementation of miniKanren with disequality and absento, compatible with Racket and Chez.

Results 11 faster-minikanren issues
Sort by recently updated
recently updated
newest added

Now that racket is on top of Chez is there room to remove some of these mk-specific compatibility layer prims? https://github.com/michaelballantyne/faster-minikanren/blob/910fbea468d57c811b85e3e365e27f5e2d9dc2ba/private-unstable.rkt#L10-L38

It should help us avoid some occurs checks. Consider: ``` (define-relation (foo x y) (symbolo x) (== x y)) ``` In the case where `y` is a very large list,...

It seems like we might be able to get away with only watching one side of the disequality, now.

Add a version of unification that omits the occurs check.

When given an existing variable name in a pattern, matche appears to treat it as a new variable. Example: ``` (run 2 (q r) (matche (r) (((Foo ,q))) (((Bar ,q))))...

`succeed` and `fail` are used in The Reasoned Schemer, it seems reasonable to provide them. The book also uses the reader syntax `#s` and `#u`, which might be interesting to...

https://github.com/michaelballantyne/faster-minikanren/blob/dc5390aca787e7c40177c420171715d728fdb65a/mk.scm#L573 `x`

https://github.com/michaelballantyne/faster-minikanren/blob/dc5390aca787e7c40177c420171715d728fdb65a/mk.scm#L565-L571 When `term` is a pair such as `(,x . ,x)`, the result would include two instances of the var. Not sure if this would lead to bad reification later...