MicroKanren in J
summary
Reimplements MicroKanren as a J library and claims a rank-polymorphic unification that applies the same unification expression across scalars, rows, or last-dimension tables by reboxing terms and partitioning paths into variable, substitution, and residual sets. State is a substitution vector whose length determines scope; examples unify an ASCII 3D array against 24 fresh variables and produce different patterns by changing rank. Prototype works functionally but is inefficient from repeated boxing, has correctness corner cases, and needs removal of recursion and evaluation of linear unification algorithms for performance.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 0:25Background
- 1:13Accessibility
- 1:58Implementation
- 3:22Representation
- 4:57Unification
- 7:59Polymorphic unification
- 10:06Issues
- 11:08Future Prospects
- 12:35Outro
related talks
24mAll for one and none forall: Compiling polymorphic relations without(…)
26mtypedKanren: Statically Typed Relational Programming with Exhaustive Matching in(…)
16mMulti-stage Relational Programming
40mμKanren: Running the Little Things Backwards
26mCommitting to the bit: Relational programming with semiring arrays and SAT solving
22mA Case Study in Functional Conversion and Mode Inference in miniKanren
40mminiKanren Philosophy
23mTyped Embedding of miniKanren for Functional Conversion
