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

Reply via email to