In Erlang gibt es das besondere Konstrukt der List Comprehension um elegant und ohne viel Code eine List von Zahlen schnell erzeugen zu können.
Sie werden meist in den folgenden Fällen eingesetzt:
- Anwendung einer Funktion auf eine Liste
- Filterung einer Liste
- verschachtelte for-Schleifen
Der Syntax der List Comprehensions
[Expression || Generaotor1, Guard11,...GuardN1, Generator2, Guard12,......GeneraotorM, Guard1M,...GuardNM,]
Expression: spezifiziert die Ergebniselement der Ergebnisliste
Generator: vergleichbar mit einer for-Schleife, bei der jedes Element der Liste durchlaufen wird: Syntax: Element<-Liste
Guards: haben eine Filter-Funktion, die bestimmt, ob ein Element in der Ergebnis-Liste landet
Einfache Beispiele für Lists Comprehensions
[X||X<-[1,2,3,4]].
[1,2,3,4]
[X||X<-[1,2,3,4], X < 3].
[1,2]
[X||X<-[1,2,3,4], X rem 2 == 0].
[2,4]