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 <javascript:>>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/**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 clo...@googlegroups.com<javascript:>
>> 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 <javascript:>
>> 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+u...@googlegroups.com <javascript:>.
>> 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