2010-09-11 7 views

Répondre

1

exactement ce que vous avez demandé:
666> [élément (2, X) || X < - [{1,2}, {3,4}]].
[2,4]

+0

Merci, mais je voulais un peu d'aide pour comprendre, pas seulement le code. – jarryd

+0

alJaree, pour comprendre, vous pouvez lire http://www.erlang.org/doc/programming_examples/list_comprehensions.html – taro

1

Bien, vrai, la compréhension élément/2 + fonctionnera. Mais le meilleur moyen est de faire correspondre les motifs:

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

Chaque correspondance de motif est supérieure à l'appel de fonction, en raison de la simplicité du code. Donc, au-dessus de ce que vous avez est la compréhension de la liste (doubles tuyaux dans la liste). Avant les tuyaux (côté droit) il y a un générateur, le côté gauche est un produit.

général:

List = [ValeurRenvoyée = une_fonction (X) || X < - GeneratorList, X =/= Conditions]

+0

A propos de la compréhension dans erlang doc: http://www.erlang.org/doc/programming_examples/list_comprehensions.html – user425720

2

vous pouvez utiliser des listes: la carte (pas si simples comme des listes de compréhension bien):

listes: carte (fun ({_, X}) -> X fin, [{a, b}, {c, d}, {e, f}]).

+0

Je pense qu'il vaut la peine de noter que celui-ci se comporte probablement mieux lorsqu'il s'agit de mauvaises données, ce qui peut justifier la syntaxe un peu plus complexe. – cthulahoops

Questions connexes