Welcome to lilinjn's[1] Institute for Search Research!
Just like Mitt, I'd like a binder full of kanren, and so I am collecting my assortment of notebooks on the topic in this repo.
Each notebook implements a (typically self-contained) kanren in a conversational style, while exploring a spectrum of design issues. The code is meant mostly to be read and twiddled interactively. At some later point the various lessons learned may be baked into library form suitable for public consumption.
-
Demo: A quick demonstration of the current state of affairs
-
FirstSteps: A translation of µKanren with some exploration of Julia specific features to create nice syntax
If you are just browsing, and would rather not be bothered by the hassles of cloning the repo, setting up IJulia, and such -- then the above links to pre-rendered versions of the notebooks may be the path for you.
However, interactive fiddling is highly encouraged -- again, for those seeking the path of least resistance, JuliaBox and/or Juno are good places to start.
The dogma is so designed to foster intuition about the geometry of search. The issue at hand is no different than the quandry of when to introduce calculators in grade school.
- Thou shalt not prophylactically
zzz
, lest you never overcome your fear of the Dragon. - Thou shalt not
reify
, lest your bones become brittle. - Thou shalt not
take
orrun
without first learning tostep
, so that you may better hear the gentle rhythms ofthunk
,thunk
,dribble
,thunk
,dribble
,dribble
,thunk
... - Thou shalt not
occurs✓
, because we should not be afraid of our own shadow, but instead rejoice in our infinite potential. - Friends don't let friends use macros -- at least, not those made of sugar. Macros made of acid may be a different story...
- Threading the Needle: Further experiments in syntax
- A Mere Trifle aka The Bourgeois Ascendency: A
Persistent Vector Store+Union-Find Walker
and benchmarking paraphenalia - Looking into the Abyss: Visualizing the Geometry of Search
- Searching for 𝕳𝔢𝔯𝔯 𝕯𝔬𝔨𝔱𝔬𝔯 𝕳𝔬𝔭𝔣: No not that one, the other one.
- kanren? cf. http://minikanren.org/
- Julia? cf. http://julialang.org/
- JuliaBox? cf. http://juliabox.org/
- Juno? cf. http://junolab.org/
We shall not cease from exploration, and the end of all our exploring will be to arrive where we started and know the place for the first time. -- T.S. Eliot
[1] ↩:lilinjn ≡ :habemus-papadum