The miniKanren tutorial <http://io.livecode.ch/learn/webyrd/webmk> contains 
the following example


(run* (q)

  (fresh (p r)

    (=/= '(1 2) `(,p ,r))

    (== `(,p ,r) q)))


which evaluates to


(((_.0 _.1) (=/= ((_.0 1) (_.1 2)))))


This is the explanation:

The answer states that p and r are unbound, and that p cannot be associated 
with 1 while r is associated with 2 (*and the other way around*).

I do not understand the bold part in the parenthesis. Does this mean that 
lists in miniKanren are position independent like sets? I can not see how 
the evaluation result shows the "other way around" statement. For me the 
result shows that the first value is bound to 1 and the second to 2 and not 
the other way around. Can anybody explain?

-- 
You received this message because you are subscribed to the Google Groups 
"minikanren" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/minikanren.
For more options, visit https://groups.google.com/d/optout.

Reply via email to