I think there is a really important function of a standard library for things 
like this. This conversation has effectively generated knowledge, specifically 
that the best way to implement `Enum.none?/2` is simply by negating 
`Enum.any?/2`. And while it is very easy for anyone to add this code to their 
project `!Enum.any?/2` what is *not* so easy is knowing that "the best way to 
implement `Enum.none?/2` is via negating `Enum.any?/2`. We all have that 
context now, so it is easy to say it shouldn't be in the standard library. I 
don't think that things only belong in the std library if the std library 
offers an optimization. Sometimes the important context is that the std library 
*doesn't* offer an optimization. Personally, I believe things like 
`Enum.none?/2` belong in the std library.

On Wed, Jun 22, 2022 at 10:49 AM, Austin Ziegler < halosta...@gmail.com > wrote:

> 
> I’ll add my support for an explicit `Enum.none?/2`, even though
> `!Enum.any?(llst)` or `Enum.any?(list, & !&1)` is equivalent. I haven’t
> faced this particular problem *in Elixir*, but JavaScript doesn’t have
> this, and I make the mistake of using `!list.all()` instead of
> `!list.some()` *every single time* I have to implement it.
> 
> 
> It’s a subtle enough difference that I think that the increased
> readability and reduced error rate are worth the added API space, as
> simply documenting this particular use case in `Enum.any?/2` would end up
> begging the question as to why not implement this as a standard function,
> and leaving it undocumented leads to incorrect implementations.
> 
> 
> -a
> 
> On Tue, Jun 21, 2022 at 3:01 AM Mladen Petkoski < mladen. petkoski@ gmail.
> com ( mladen.petko...@gmail.com ) > wrote:
> 
> 
>> Got my support, i've used something similar in Ruby.
>> 
>> уторак, 21. јун 2022. у 08:50:36 UTC+2 zoran... @ gmail. com (
>> zoran...@gmail.com ) је написао/ла:
>> 
>> 
>>> I would support this. It's handy in Ruby lang.
>>> 
>>> On Monday, June 20, 2022 at 1:31:35 AM UTC+2 marij... @ gmail. com wrote:
>>> 
>>> 
>>>> I agree with Filip. It can be just an alias for negated Enum.any?
>>>> I don't think it'll be that much of a bloat
>>>> 
>>>> 
>>>> On Saturday, June 18, 2022 at 8:52:36 PM UTC+2 ad... @ a-corp. co. uk 
>>>> wrote:
>>>> 
>>>> 
>>>> 
>>>>> Personally I think a function like this is easy enough to implement for
>>>>> our own codebases if we need one. I don’t think there is much precedence
>>>>> in other langs for such a function and a core implementation is not likely
>>>>> to be any different from what you would write in your codebase, meaning
>>>>> having it in core is unlikely to save anyone from gotchas or improve the
>>>>> performance of their implementation.
>>>>> 
>>>>> 
>>>>> To me it feels like bloat.
>>>>> 
>>>>> 
>>>>> and given that you can already write:
>>>>> 
>>>>> 
>>>>> not Enum.any?(…)
>>>>> 
>>>>> 
>>>>> It really doesn’t improve anything much imho.
>>>>> 
>>>>> 
>>>>> Best
>>>>> 
>>>>> 
>>>>> Adam
>>>>> 
>>>>> 
>>>>> On Sat, 18 Jun 2022 at 19:40, Filip Paunkovic < filippaun... @ gmail. com 
>>>>> >
>>>>> wrote:
>>>>> 
>>>>> 
>>>>>> Yeah, I'd like to see this as well. Maybe implement it as a negation of
>>>>>> Enum.any?
>>>>>> 
>>>>>> субота, 18. јун 2022. у 19:26:58 UTC+2 urosj... @ gmail. com је 
>>>>>> написао/ла:
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> I'd like this to be added. Just makes sense to do it. My two cents
>>>>>>> субота, 18. јун 2022. у 14:29:49 UTC+2 zvon... @ gmail. com је 
>>>>>>> написао/ла:
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>>> @Andrey yeah that is correct but seeing that Enum.filter and 
>>>>>>>> Enum.reject
>>>>>>>> exist I thought that Enum.all? should have a counterpart as well. Not 
>>>>>>>> just
>>>>>>>> a negated Enum.any?
>>>>>>>> 
>>>>>>>> 
>>>>>>>> субота, 18. јун 2022. у 13:45:28 UTC+2 br... @ grox. io је написао/ла:
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> !Enum.any is what you are looking for. Also, Enum.any? takes an 
>>>>>>>>> optional
>>>>>>>>> function, so Enum.any?(list, &! &1) works, as does Enum.any?(list, fn 
>>>>>>>>> x ->
>>>>>>>>> !x end).
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> -bt
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Sat, Jun 18, 2022 at 7:36 AM Zvonimir Rudinski < zvon... @ gmail. 
>>>>>>>>> com >
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Seeing Enum.all?/2 being available made me assume there was also an 
>>>>>>>>>> Enum.none?/2
>>>>>>>>>> (like in Ruby), and I was a bit suprised to learn there was no such 
>>>>>>>>>> thing.
>>>>>>>>>> 
>>>>>>>>>> I'm aware that I could just do !Enum.all?/2 , but Enum.none?/2 sees 
>>>>>>>>>> much
>>>>>>>>>> nicer to me.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> One more argument that I could make is that !Enum.all?/1 == 
>>>>>>>>>> Enum.none?/1 is
>>>>>>>>>> not true in all cases.
>>>>>>>>>> Example:
>>>>>>>>>> If we have [false, true] , !Enum.all?/1 will be true , but 
>>>>>>>>>> Enum.none?/1 will
>>>>>>>>>> be false
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> I would like your thoughts on this one.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>>> Groups
>>>>>>>>>> "elixir-lang-core" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>>>>> send an
>>>>>>>>>> email to elixir-lang-co... @ googlegroups. com.
>>>>>>>>>> To view this discussion on the web visit https:/ / groups. google. 
>>>>>>>>>> com/ d/
>>>>>>>>>> msgid/ elixir-lang-core/ 
>>>>>>>>>> 0b68e108-825f-49d5-86ec-317caa2a852fn%40googlegroups.
>>>>>>>>>> com (
>>>>>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/0b68e108-825f-49d5-86ec-317caa2a852fn%40googlegroups.com?utm_medium=email&utm_source=footer
>>>>>>>>>> ).
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> 
>>>>>>>>> Regards,
>>>>>>>>> Bruce Tate
>>>>>>>>> CEO
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> (
>>>>>>>>> https://bowtie.mailbutler.io/tracking/hit/f8218219-d2a8-4de4-9fef-1cdde6e723f6/c7c97460-016e-45fb-a4ab-0a70318c7b97
>>>>>>>>> )
>>>>>>>>> 
>>>>>>>>> Groxio, LLC.
>>>>>>>>> 512. 799. 9366 ( tel:(512)%20799-9366 )
>>>>>>>>> br... @ grox. io
>>>>>>>>> grox. io ( http://grox.io/ )
>>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google Groups
>>>>>> "elixir-lang-core" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, send an
>>>>>> email to elixir-lang-co... @ googlegroups. com.
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>>> To view this discussion on the web visit https:/ / groups. google. com/ 
>>>>>> d/
>>>>>> msgid/ elixir-lang-core/ 
>>>>>> 187f642b-209b-4f99-867d-a3c173962b1cn%40googlegroups.
>>>>>> com (
>>>>>> https://groups.google.com/d/msgid/elixir-lang-core/187f642b-209b-4f99-867d-a3c173962b1cn%40googlegroups.com?utm_medium=email&utm_source=footer
>>>>>> ).
>>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
>> 
>> 
>> 
>> --
>> You received this message because you are subscribed to the Google Groups
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to elixir-lang-core+unsubscribe@ googlegroups. com (
>> elixir-lang-core+unsubscr...@googlegroups.com ).
>> To view this discussion on the web visit https:/ / groups. google. com/ d/
>> msgid/ elixir-lang-core/ 
>> 3c24688c-5877-47f0-87c0-e7428345a15en%40googlegroups.
>> com (
>> https://groups.google.com/d/msgid/elixir-lang-core/3c24688c-5877-47f0-87c0-e7428345a15en%40googlegroups.com?utm_medium=email&utm_source=footer
>> ).
>> 
> 
> 
> 
> 
> 
> --
> Austin Ziegler • halostatue@ gmail. com ( halosta...@gmail.com ) • austin@
> halostatue. ca ( aus...@halostatue.ca )
> http:/ / www. halostatue. ca/ ( http://www.halostatue.ca/ ) • http:/ / 
> twitter.
> com/ halostatue ( http://twitter.com/halostatue )
> 
> 
> 
> 
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elixir-lang-core+unsubscribe@ googlegroups. com (
> elixir-lang-core+unsubscr...@googlegroups.com ).
> To view this discussion on the web visit https:/ / groups. google. com/ d/
> msgid/ elixir-lang-core/ 
> CAJ4ekQtQnsop1Rb4OAL_eF%2BRMHgJR6dXhaxaW0V_URMUw12BRg%40mail.
> gmail. com (
> https://groups.google.com/d/msgid/elixir-lang-core/CAJ4ekQtQnsop1Rb4OAL_eF%2BRMHgJR6dXhaxaW0V_URMUw12BRg%40mail.gmail.com?utm_medium=email&utm_source=footer
> ).
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/l4pq6nw3.cbf23422-0630-4845-acdc-9c7dde6281e8%40we.are.superhuman.com.

Reply via email to