Skip to content

Differences from The Reasoned Schemer

swannodette edited this page May 28, 2011 · 20 revisions

The following are the most important differences from version of miniKanren described in The Reasoned Schemer.

  • #s is s#
  • #u is u#
  • fresh is exist
  • conde is actually condi. There is no conde as is presented in the book.
  • the run interface returns a lazy-sequence not a list
  • Clojure has no way to create pairs (sequences with improper tails). The core.logic lcons constructor fn supports nil, sequences, LCons instances, and LVar instances as tails. llist is a convenience macro that expands out into nested lcons expressions.
Clone this wiki locally