Excellent! :)

On Thu, Mar 28, 2013 at 4:46 PM, JvJ <kfjwhee...@gmail.com> wrote:

> HOORAY!  I did it all by myself! (with your help)
>
> (defn not-membero
>   [x l]
>   (fresh [head tail]
>  (conde
>    ( (== l ()) )
>    ( (conso head tail l)
>  (!= x head)
>  (not-membero x tail) ))))
>
> On Thursday, 28 March 2013 16:21:41 UTC-4, David Nolen wrote:
>
>> My point here isn't to tickle your brain but point out that there's a bit
>> of misunderstanding about how core.logic works and what facilities you
>> should use to handle your problem.
>>
>> It should be clear soon enough that it will be very difficult to
>> formulate your problem in terms of facts or conde.
>>
>> You said you wanted q to be a member of a some list A. Then why not use
>> membero? But you don't want q to be a member of some list B. Then try to
>> write a not-membero in terms of disequality.
>>
>> (run* [q]
>>  (membero q '(1 2 3 4))
>>  (not-membero q '(3 4 5 6)))
>>
>> David
>>
>>
>> On Thu, Mar 28, 2013 at 4:12 PM, JvJ <kfjwh...@gmail.com> wrote:
>>
>>> Any other hints?  I'd love to spend time on this brain tickler, but I
>>> have other things to do.
>>>
>>>
>>> On Thursday, 28 March 2013 16:05:00 UTC-4, JvJ wrote:
>>>>
>>>> Alright, I'm starting to get it.... but not quite there
>>>>
>>>> (run* [q]
>>>>     (fresh [x]
>>>>   (conde
>>>>    ( (== q 1) )
>>>>    ( (== q 2) )
>>>>    ( (== q 3) )
>>>>    ( (== q 4) ))
>>>>
>>>>   (conde
>>>>    ( (== x 3) )
>>>>    ( (== x 4) )
>>>>    ( (== x 5) )
>>>>    ( (== x 6) ))
>>>>
>>>>   (!= q x)))
>>>> (1 1 1 2 1 2 2 2 3 4 3 3 4 4)
>>>>
>>>> On Thursday, 28 March 2013 15:44:01 UTC-4, David Nolen wrote:
>>>>>
>>>>> This won't work. Rewrite this example w/o using facts and try to
>>>>> understand why it won't work.
>>>>>
>>>>> David
>>>>>
>>>>> On Thu, Mar 28, 2013 at 3:37 PM, JvJ <kfjwh...@gmail.com> wrote:
>>>>>
>>>>>> Here's what I'm trying...
>>>>>>
>>>>>> (facts a  [[1]
>>>>>>      [2]
>>>>>>      [3]
>>>>>>      [4]])
>>>>>> nil
>>>>>> (facts b  [[3]
>>>>>>      [4]
>>>>>>      [5]
>>>>>>      [6]])
>>>>>>
>>>>>> (run* [q]
>>>>>>     (a q)
>>>>>>     (fresh [x]
>>>>>>    (b x)
>>>>>>    (!= q x)))
>>>>>> (1 1 2 1 1 2 2 2 3 4 3 3 4 4)
>>>>>>
>>>>>> So what the heck is this all about?
>>>>>>
>>>>>> On Thursday, 28 March 2013 15:17:24 UTC-4, David Nolen wrote:
>>>>>>
>>>>>>> negation is hard. This has come up several times. It may be possible
>>>>>>> to a better form of negation as failure via delays, but this not high 
>>>>>>> on my
>>>>>>> current priority list. Patches to make it work are of course most 
>>>>>>> welcome.
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Mar 28, 2013 at 2:54 PM, JvJ <kfjwh...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Thanks, but there's another aspect to this.
>>>>>>>>
>>>>>>>> Let's say I had two relations A and B, and I wanted all q such that
>>>>>>>> (A q)
>>>>>>>> (not (B q))
>>>>>>>>
>>>>>>>> How would that work?
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thursday, 28 March 2013 14:50:33 UTC-4, Jim foo.bar wrote:
>>>>>>>>
>>>>>>>>> clojure.set/difference
>>>>>>>>> 'membero' combined with its negated form?
>>>>>>>>>
>>>>>>>>> Jim
>>>>>>>>>
>>>>>>>>> On 28/03/13 18:47, JvJ wrote:
>>>>>>>>> > In core.logic, how do the following: "Give me everything that is
>>>>>>>>> a
>>>>>>>>> > member of list A and not a member of list B"?
>>>>>>>>> > --
>>>>>>>>> > --
>>>>>>>>> > You received this message because you are subscribed to the
>>>>>>>>> Google
>>>>>>>>> > Groups "Clojure" group.
>>>>>>>>> > To post to this group, send email to clo...@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+u...@**googlegroups.com
>>>>>>>>> > For more options, visit this group at
>>>>>>>>> > http://groups.google.com/**group******/clojure?hl=en<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+u...@**googlegroups.com.
>>>>>>>>> > For more options, visit https://groups.google.com/**grou******
>>>>>>>>> ps/opt_out <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 clo...@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+u...@**googlegroups.com
>>>>>>>> For more options, visit this group at
>>>>>>>> http://groups.google.com/**group****/clojure?hl=en<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+u...@**googlegroups.com.
>>>>>>>> For more options, visit https://groups.google.com/**grou****
>>>>>>>> ps/opt_out <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 clo...@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+u...@googlegroups.com
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/**group**/clojure?hl=en<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+u...@googlegroups.com.
>>>>>> For more options, visit 
>>>>>> https://groups.google.com/**grou**ps/opt_out<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 clo...@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+u...@**googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/**group/clojure?hl=en<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+u...@**googlegroups.com.
>>> For more options, visit 
>>> https://groups.google.com/**groups/opt_out<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.
>
>
>

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