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 <scherpeni...@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-lang-core+unsubscr...@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-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4L32XGv%2B4KvbshsRhzO9bp1F8k55j7usObpJn7Z31zCFw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to