Hi Thorsten, Thanks for reading and the great feedback. In response, yes lvars introduced by fresh stay 'inside' the run* which only returns the query lvar. Your other comments are 100% correct and I will update the document to reflect them.
Thanks again, Edmund On Thursday, 15 March 2012 09:44:35 UTC, thorwil wrote: > > On 03/14/2012 08:00 PM, David Nolen wrote: > > Thanks to Edmund Jackson we have a new primer for core.logic: > > https://github.com/clojure/core.logic/wiki/A-Core.logic-Primer > > > > Feedback appreciated! > > Hi! > > Does a run* expression evaluate to only the query-variable, while lvars > introduced with fresh stay internal? > > > "Finally we unify a and q leaving both with the value of their > intersection: (1, 2, 3) intersection (3, 4, 5), (3)" > I stumbled over this sentence because of the "(1, 2, 3) intersection (3, > 4, 5), (3)" part. Sudden use of infix, with the result after a comma? > Just writing (3) would be clearer. > > > Regarding conde, I had to reread that section carefully. Consider to > first explain conde with single-goal clauses, to then mention that each > clause is actually a list of goals with AND-logic (simple case first, > expand afterwards). > > > In the "Conso (the Magnificent)" section, use of "return" inside of the > code blocks is inconsistent with the rest of the article. > > I do not understand the explanations to the last 2 examples, even though > I think I understand the logic. The use of list [1] and list [2] is not > easy to read, how about writing out first and second list? > > I would think that: > > (run* [q] > (conso q [2 3] [1 2 3])) > > returns (1); q is the element that when added as head to the first list, > results in a list equal to the second list (if such an element exists). > > (run* [q] > (conso 1 [2 q] [1 2 3])) > > returns (3); q is the element of the first list that when 1 is added as > head to the first list results in a list equal to the second list (if > such an element exists). > > So conso constraints whatever lvars are present in an attempt to unify > the cons of its first 2 arguments with its third argument, restricting > the arguments to be atom-or-list, list, list? > > > Otherwise an enlightening and inspiring read, thank you! > > > -- > Thorsten Wilms > > thorwil's design for free software: > http://thorwil.wordpress.com/ > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en
