The previous discussion said: > Now I am thinking it may be better to not add `Map.take!/2`. It is not complicated to implement it yourself and given the possible confusion with pattern matching and that it may require both drop! and delete!, it is probably not worth it. So for now I would like to postpone adding this functionality. Sorry.
Sabiwara, since you proposed the previous time, what are your thoughts 3 years later? On Wed, Feb 21, 2024 at 12:37 PM Damir Petkovic <damir1petko...@gmail.com> wrote: > Thanks for sharing but I can't find where exactly it said it was rejected. > Seems as if an incomplete discussion without a conclusion or am I missing > something? > > On Wed, Feb 21, 2024 at 12:30 PM sabi...@gmail.com <sabiw...@gmail.com> > wrote: > >> For the record this proposal has been rejected once in the past >> https://groups.google.com/g/elixir-lang-core/c/cmirsH_OHKo/m/j2Um5uy-BgAJ >> >> Le mercredi 21 février 2024 à 20:21:56 UTC+9, José Valim a écrit : >> >>> +1 for the proposal, but it has to be implemented more efficiently than >>> what was described here and we also need to add drop!. PRs welcome. >>> >>> On Wed, Feb 21, 2024 at 10:59 AM Artur Plysiuk <ifu...@gmail.com> wrote: >>> >>>> I just came here to add the same proposal. >>>> >>>> четвер, 28 грудня 2023 р. о 11:40:07 UTC+2 DaTrader пише: >>>> >>>>> It's not special at all. Actually it is as generic as the current >>>>> `Keyword.take/2`. You either want the operation to succeed if there aren't >>>>> all keys present or you want it to fail. Those are two equally important >>>>> use cases. >>>>> >>>>> On Thursday, December 28, 2023 at 3:21:50 AM UTC+1 rogers...@gmail.com >>>>> wrote: >>>>> >>>>>> I don't see such special use cases as good candidates to be included >>>>>> in builtins libraries. >>>>>> >>>>>> Em segunda-feira, 18 de dezembro de 2023 às 07:56:11 UTC-3, DaTrader >>>>>> escreveu: >>>>>> >>>>>>> Many times I need to merge a subset of a keyword list or a map into >>>>>>> another keyword list or map while requiring it to fail if not all keys >>>>>>> are >>>>>>> present. >>>>>>> >>>>>>> For this purpose I have small utility modules called KwUtils and >>>>>>> MapUtils where I have functions like the one below: >>>>>>> >>>>>>> ``` >>>>>>> @doc """ >>>>>>> Takes specified key-value pairs from the keyword list but raises >>>>>>> if any not found. >>>>>>> """ >>>>>>> @spec take!( keyword(), [ atom()]) :: keyword() >>>>>>> def take!( kw, keys) do >>>>>>> taken = Keyword.take( kw, keys) >>>>>>> >>>>>>> if length( taken) != length( keys) do >>>>>>> raise "Expected all keys in #{ inspect( keys)} to be present >>>>>>> in #{ inspect( kw)}" >>>>>>> end >>>>>>> >>>>>>> taken >>>>>>> end >>>>>>> ``` >>>>>>> >>>>>>> It'd be nice if a corresponding function was part of the `Keyword` >>>>>>> and `Map` modules each. >>>>>>> >>>>>>> -- >>>> 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/787ccf87-a103-4271-9d77-2101f1e23247n%40googlegroups.com >>>> <https://groups.google.com/d/msgid/elixir-lang-core/787ccf87-a103-4271-9d77-2101f1e23247n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> You received this message because you are subscribed to a topic in the >> Google Groups "elixir-lang-core" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/elixir-lang-core/7jRfrcPBK_w/unsubscribe >> . >> To unsubscribe from this group and all its topics, 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/f09ac2cf-b38d-4035-871e-372d19c742c3n%40googlegroups.com >> <https://groups.google.com/d/msgid/elixir-lang-core/f09ac2cf-b38d-4035-871e-372d19c742c3n%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/CAENAfeV2S7k%3D7-1huNMgafXfw9072YpKSyuHMmvKWbS60CjuAQ%40mail.gmail.com > <https://groups.google.com/d/msgid/elixir-lang-core/CAENAfeV2S7k%3D7-1huNMgafXfw9072YpKSyuHMmvKWbS60CjuAQ%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/CAGnRm4JbrCthxZys8A679guk4WngnWn0133eih7yRA465txYoA%40mail.gmail.com.