You need to use is like this.

iex(1)>  ["a","b","c"] |> Enum.any?(&String.valid?/1) |> Kernel.!()
false
iex(2)> !( ["a","b","c"] |> Enum.any?(&String.valid?/1))           
false


On Wed, 22 Jun 2022 10:26:57 -0700
Kurtis Rainbolt-Greene <kurtis@rainbolt-greene.online> wrote:

> While quippy `!Enum.any?` also just doesn't work in some cases:
> 
> ```
> iex(2)> ["a","b","c"] |> !Enum.any?(&String.valid?/1)  
> ** (ArgumentError) cannot pipe ["a", "b", "c"] into
> !Enum.any?(&String.valid?/1), the :! operator can only take one
> argument ```
> 
> Obviously you can get cute:
> 
> ```
> iex(2)> ["a","b","c"] |> Enum.any?(&String.valid?/1) |> Kernel.!()  
> false
> ```
> 
> On Wed, Jun 22, 2022 at 8:09 AM Zach Daniel
> <zachary.s.dan...@gmail.com> wrote:
> 
> > 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.petko...@gmail.com> wrote:  
> >>  
> >>> Got my support, i've used something similar in Ruby.
> >>>
> >>> уторак, 21. јун 2022. у 08:50:36 UTC+2 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 <(512)%20799-9366>
> >>>>>>>>>> br...@grox.io
> >>>>>>>>>> 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+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 • halosta...@gmail.com • aus...@halostatue.ca
> >> http://www.halostatue.ca/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+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
> > <https://groups.google.com/d/msgid/elixir-lang-core/l4pq6nw3.cbf23422-0630-4845-acdc-9c7dde6281e8%40we.are.superhuman.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/62b3564c.1c69fb81.c4a63.03b5SMTPIN_ADDED_MISSING%40gmr-mx.google.com.

Reply via email to