>
> This is not a bug, just a result of the evaluation model - order matters.


I thought order didn't matter (unless otherwise stated) in core.logic. Is
there a way for me to infer which goals are like this? (by looking at the
code if not from docs)

I am trying to get this working:

(defn geto [c k v]
  (matche [c]
    ([[]] (nilo k))
    ([[f . r]] (fresh [a] (firsto f a)
                          (conde [(== a k) (resto f v)]
                                 [(geto r k v)])))))


(defn keyso [c k]
  (matche [c]
    ([[]] (nilo k))
    ([[f . r]] (fresh [a b] (firsto f a)
                            (keyso r b)
                             (conso a b k)))))


(defn distinctkeyso [c]
  (fresh [x]
    (keyso c x)
    (distincto x)))


(run 1 [q]
  (fresh [x]
    (geto x :tree false)
    (== q true)
    (geto x :tree q)
    (distinctkeyso x)))


But it doesn't complete with that distinctkeyso. I tried to use maps but it
didn't work[1], so I decided to give lists a try. geto and keyso seem to
work fine.

[1]
http://stackoverflow.com/questions/21519290/why-isnt-featurec-create-a-contradiction



On Mon, Feb 3, 2014 at 6:01 AM, Atamert Ölçgen <mu...@muhuk.com> wrote:

> I can't log in:
>
> com.atlassian.jira.util.dbc.Assertions$NullArgumentException: user should
> not be null!
>
>
>
>
>  On Mon, Feb 3, 2014 at 5:58 AM, David Nolen <dnolen.li...@gmail.com>wrote:
>
>> This is not a bug, just a result of the evaluation model - order matters.
>>
>> Bugs can be filed here: http://dev.clojure.org/jira/browse/LOGIC
>>
>> David
>>
>>
>> On Mon, Feb 3, 2014 at 12:51 AM, Atamert Ölçgen <atamert.olc...@gmail.com
>> > wrote:
>>
>>> This succeeds:
>>>
>>> (run 1 [q]
>>>   (distincto q)
>>>   (== q [1 2 3])) -> ((1 2 3))
>>>
>>>
>>>
>>> But this runs forever:
>>>
>>> (run 1 [q]
>>>   (distincto q)
>>>   (== q [1 2 3 1]))
>>>
>>>
>>>
>>> BTW, why is it so difficult to create a bug report for core.logic? Issue
>>> tracker is not enabled in GitHub. I signed up to http://dev.clojure.org/but 
>>> still can't create a ticket.
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
>
> --
> Kind Regards,
> Atamert Ölçgen
>
> -+-
> --+
> +++
>
> www.muhuk.com
>



-- 
Kind Regards,
Atamert Ölçgen

-+-
--+
+++

www.muhuk.com

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to