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

Reply via email to