Thanks for this. I didn't think about that!

On Tuesday, 18 December 2012 15:51:55 UTC, Tassilo Horn wrote:
>
> Stathis Sideris <[email protected] <javascript:>> writes: 
>
> Hi Stathis, 
>
> > With the code below you can query transitive relationships between 
> > entities successfully. Is there any way to use core.logic "explain" 
> > the relationship? Specifically, is there any way to write a function 
> > explain so that: 
> > 
> >> (explain :pitbull :chordate) 
> > 
> > will give you: 
> > 
> > [:pitbull :dog] 
> > [:dog :mammal] 
> > [:mammal :chordate] 
>
> Can't you define `iso` with 3 args, one being a list of intermediates? 
> E.g., something like 
>
> (defn iso [entity is parent] 
>   (conde 
>     [(is-a entity parent) (== is ())] 
>     [(fresh [i nis] 
>        (is-a entity i) 
>        (conso i nis is) 
>        (iso i nis parent))])) 
>
> Then you could run it like: 
>
>   test.logic> (run* [q] (iso :pitbull q :animal)) 
>   ((:dog :mammal :chordate)) 
>
> Bye, 
> Tassilo 
>

-- 
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