3 ms·
ΜKanren: A Minimal Functional Core for Relational Programming (2013) [pdf]
- _halgari 11y agoIt's an excellent paper. The way it describes logic programs as a stream of environments is very general. I've taken the basic concepts in this paper and implemented them with Clojure lazy seqs, CSP (https://github.com/halgari/async-mu-kanren/blob/master/src/async_mu_kanren/core.clj https://github.com/halgari/async-mu-kanren/blob/master/src/a...), and transducers. Monads (as described in this paper) probably have the fewest drawbacks, but the technique can be implemented many ways.
- xeqi 11y agoDid you ever explore if a channel can feed back into itself? https://github.com/halgari/async-mu-kanren/blob/master/src/async_mu_kanren/core.clj#L189 https://github.com/halgari/async-mu-kanren/blob/master/src/a...