some_id
some_id

Reputation: 29906

return a list consisiting of the elements from tuples

How does one return e.g. the first element of a tuple?

I would like to take a list of 2 element tuples and return the second element of each tuple as a new list.

Upvotes: 2

Views: 2279

Answers (4)

Alin
Alin

Reputation: 818

you could use lists:map (not so simple like lists comprehension though):

lists:map(fun({_,X}) -> X end, [{a,b},{c,d},{e,f}]).

Upvotes: 2

user425720
user425720

Reputation: 3598

Well, true, element/2 + comprehension will work. But the best way is to pattern match:

[ Var2 || {_Var1, Var2} <- [{1,2},{3,4}]]

Every pattern matching is superior to function call, due to code simplicity.

So, above what you have is list comprehension (double pipes inside the list). Before pipes (right hand side) there is generator, left side is a product.

General:

List = [ ReturnedValue = some_function(X) || X <- GeneratorList, X =/= Conditions ]

Upvotes: 1

kr1
kr1

Reputation: 7485

exactly what you've asked:
666> [element(2,X) || X <- [{1,2},{3,4}]].
[2,4]

Upvotes: 1

miku
miku

Reputation: 188194

1> P = {adam,24,{july,29}}.
{adam,24,{july,29}}
2> element(1,P).
adam
3> element(3,P).
{july,29}

See also: http://www.erlang.org/doc/reference_manual/data_types.html#id2259804

Upvotes: 2

Related Questions