If you're interested in relational arithmetic you might enjoy hacking away
with this page.

https://github.com/frenchy64/Logic-Starter/wiki/Arithmetic

Ambrose

On Sat, Oct 8, 2011 at 10:17 PM, Sunil S Nandihalli <
sunil.nandiha...@gmail.com> wrote:

> Thanks Ambrose. that fixed it .. I tried the following along the same lines
> but didn't work.. can you suggest as to how I can do it?
>
> (defn nlasto [l last-val]
>   (project [l last-val]
>            (== last-val (last l))))
>
> (run* [q] (nlasto [1 2 3 4 5] q))
>
> I do know how to do it in pure relational thing.. I just wanted to try the
> non-relational version
>
> Sunil.
>
> On Sat, Oct 8, 2011 at 6:38 PM, Ambrose Bonnaire-Sergeant <
> abonnaireserge...@gmail.com> wrote:
>
>> Hi Sunil,
>>
>> Use the non-relational goal "project" to get the value of a lvar.
>>
>> The "is" operator in Prolog does similar things AFAIK.
>>
>> Untested:
>>
>> (defnu lengtho [l n]
>>   ([[] 0])
>>   ([[_ . rst] _] (fresh [n1]
>>                         (lengtho rst n1)
>>                         (project [n n1]
>>                              (== n (+ n1 1)))))
>>
>> Thanks,
>> Ambrose
>>
>> On Sat, Oct 8, 2011 at 3:50 PM, Sunil S Nandihalli <
>> sunil.nandiha...@gmail.com> wrote:
>>
>>> Hi everybody,
>>>  I was just trying to implement a simple length of a list in core.logic
>>> (basically solving the 99-problems-in-prolog). I am not able to find a way
>>> to increment values.. Can somebody help me with this... I would like some
>>> thing like the following to work..
>>>
>>> (defnu lengtho [l n]
>>>   ([[] 0])
>>>   ([[_ . rst] _] (fresh [n1]
>>>                         (lengtho rst n1)
>>>                         (== n (+ n1 1))))
>>>
>>> but I can't do "(== n (+ n1 1))" can somebody help me? Even if you tell
>>> me as to how I can covert the regular count function so that I can use it as
>>> a goal.. that would work too.
>>> Thanks,
>>> Sunil.
>>>
>>> --
>>> 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 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 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 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

Reply via email to