Please refer to Chouser's answer for your main point,

Regards,

-- 
laurent

2009/5/26 Sean Devlin <francoisdev...@gmail.com>:
>
> Okay, excellent counterexample for some.  I understand that behavior
> now.
>
> I guess I should focus on my main point, changing/aliasing the name to
> some? to be consistent with every?
>
> On May 26, 9:34 am, Laurent PETIT <laurent.pe...@gmail.com> wrote:
>> Hi,
>>
>> (comp first filter) and some are not equivalent.
>>
>> Consider this less simple case:
>>
>> user=> (defn negate-or-nil [x] (when (even? x) (- x)))
>> #'user/negate-or-nil
>> user=> (first (filter negate-or-nil [1 2 3]))
>> 2
>> user=> (some negate-or-nil [1 2 3])
>> -2
>> user=>
>>
>> some returns the result of the predicate, filter returns the seq item
>> for which predicate matches.
>>
>> Concerning the result of some, it seems better to return a more
>> meaningful value, because it still can be used as logical true, e.g.
>> in an if or when construct ...
>>
>> 2009/5/26 Sean Devlin <francoisdev...@gmail.com>:
>>
>>
>>
>> > To add to my own post:
>>
>> > There is also a discrepancy in what is returned from the two
>>
>> > (some identity [1 2 3]) -> 1
>> > (every? identity [1 2 3]) -> true
>>
>> > I would expect the following to occur
>>
>> > (some identity [1 2 3]) -> true
>>
>> > Granted, it's all the same to an if statement.  However, current
>> > behavior of some has the added use:
>>
>> > (first (filter identity [1 2 3])) -> 1
>> > (some identity [1 2 3]) -> 1
>>
>> > Is the equivalence a fluke, or is this by design?  Is there any
>> > promise that some will continue to behave this way in the future?  If
>> > so, it seems like a bad alias for (first (filter...))
>>
>> > Just more to discuss
>>
>> > On May 26, 9:02 am, Sean Devlin <francoisdev...@gmail.com> wrote:
>> >> I just noticed a quirk in the core API.  The some and every? functions
>> >> have different naming conventions.  Is there a reason for this?  If
>> >> not I think renaming/creating an alias some? would be very helpful.
> >
>

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