I guess there will be always different tastes regarding this subject :-) sexta-feira, 5 de Abril de 2019 às 13:48:32 UTC+1, Andrea Leopardi escreveu: > > Often times matching on the tuple size can make your program safer since > it will crash on unexpected inputs. In cases like the one you mentioned, I > would go with |> Enum.map(fn {x, _, _} -> x end). > > On Fri, 5 Apr 2019 at 14:46, Mário Guimarães <mario.lui...@gmail.com > <javascript:>> wrote: > >> Hi José >> >> there are occasions like when doing ... |> Enum.map(&first) |> ... where >> pattern matching does not apply, and .. |> Enum.map(&elem(&1,0)) |> ... is >> much less readable. >> >> It was regarding these cases that I thought about tuple accessors. >> >> Mário Guimarães >> >> sexta-feira, 5 de Abril de 2019 às 12:42:11 UTC+1, José Valim escreveu: >>> >>> But perhaps, the most important, is that generally you should be pattern >>> matching on tuples. >>> >>> Most of the times, you know exactly the size of the tuple you are >>> working with, and pattern matching on it is more intention revealing. >>> >>> If you have large tuples and the size may change, then sure, pattern >>> matching is not a good idea, but then the Record module becomes handy. >>> Record allows you to work with tuples and give also them names, and the >>> names are a better API than relying on indexes. >>> >>> *José Valim* >>> www.plataformatec.com.br >>> Skype: jv.ptec >>> Founder and Director of R&D >>> >>> >>> On Fri, Apr 5, 2019 at 1:13 PM Arjan Scherpenisse <scherp...@gmail.com> >>> wrote: >>> >> If you really want this, you could metaprogram it yourself ;-) >>>> >>>> defmodule TupleAccess do >>>> @names ~w(first second third fourth fifth sixth seventh eight ninth >>>> tenth)a >>>> >>>> for {name, index} <- Enum.with_index(@names) do >>>> def unquote(name)(tuple) do >>>> elem(tuple, unquote(index)) >>>> end >>>> end >>>> end >>>> >>>> iex(5)> import TupleAccess >>>> TupleAccess >>>> iex(6)> first({:a}) >>>> :a >>>> iex(7)> first({:a, :b}) >>>> :a >>>> iex(8)> second({:a, :b}) >>>> :b >>>> >>>> >>>> On Friday, April 5, 2019 at 1:05:35 PM UTC+2, Louis Pilfold wrote: >>>>> >>>>> Hey >>>>> >>>>> We have elem/2, which is quite clear and more concise. >>>>> >>>>> We don't need specific functions for each index because we are not >>>>> limited by a static type system and so the index does not need to be >>>>> known >>>>> at compile time. >>>>> >>>>> Cheers, >>>>> Louis >>>>> >>>>> On Fri, 5 Apr 2019, 11:29 Mário Guimarães, <mario.lui...@gmail.com> >>>>> wrote: >>>>> >>>>>> Hello, >>>>>> >>>>>> any reason why there are no easy readable idioms like >>>>>> >>>>>> first, snd, third, ..., tenth (I guess is enough) >>>>>> >>>>>> to access tuples? >>>>>> >>>>>> Thanks >>>>>> >>>>>> -- >>>>>> 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-l...@googlegroups.com. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/elixir-lang-core/75b06fc7-5be0-4070-8c49-6e2fb5779ea3%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/75b06fc7-5be0-4070-8c49-6e2fb5779ea3%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> -- >>>> 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-l...@googlegroups.com. >>>> >>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/elixir-lang-core/da9cc177-513d-4683-8f4e-1c8b9c8286ca%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/elixir-lang-core/da9cc177-513d-4683-8f4e-1c8b9c8286ca%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> 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-l...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elixir-lang-core/876d9efd-f721-431a-b4c5-620876f2aaad%40googlegroups.com >> >> <https://groups.google.com/d/msgid/elixir-lang-core/876d9efd-f721-431a-b4c5-620876f2aaad%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- > > Andrea Leopardi > an.le...@gmail.com <javascript:> >
-- 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/7b795161-faae-4605-8a8d-83da1b4ebc26%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.