On Tue, Jul 19, 2011 at 2:27 AM, Meikel Brandmeyer <m...@kotka.de> wrote:
> Hi Ambrose, > > I haven't been exposed to logic programming besides the examples David > posted to the list. I found your tutorial very easy to follow and to read. I > have two minor nit-picks. > > > 1. I understand, that these o, e and some third, I think, suffixes are > there historically. And for someone not used to logic programming they are > as counter-intuitive as it can get: o == relati*o*n? o.O WTF. Maybe you > can motivate a little why they are called like that historically? I > personally need such explanations in case of such (on first sight) > unrelated > things. > > Perhaps one reason is that miniKanren allows the programmer to mix both functional and relational programming together. Relational counterparts need to be distinguished from their functional ones - cons vs. conso. Functions have sensible return values - goals do not outside of the run interface. My guess is that o stands for output - inputs and outputs are simply whatever arguments a goal takes. But still, I admit, it is largely for historical reasons. However I'm a bit conservative on this point since the existing body of miniKanren literature follows this convention. As core.logic evolves and usage increases I'm sure new conventions will arise. > > 1. After going through some more or less easy to follow and to > understand examples, you dive into the interesting stuff: the definition of > typedo - and loose me completely with c, e, t, k, m, v, s and ?r. I > understand that c probably means context, e expression and t type. But > trying to keep the meaning of exists, matche, geto and other funny names > with strange suffixes in the cache *and* coping with one character > locals is - at least for me - a bit much. > > Good point. David -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en