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.