Was dieser Code tut, nimmt die Ausgabe von someFun()
(die eine Liste zurückgeben muss), und für jedes Element in der Liste wird der Wert des Elements der Variablen X
zugewiesen und dann wird der ASCII-Wert des Zeichens subtrahiert 0
von diesem Wert. Die resultierende Liste ist dann der Wert des gesamten Ausdrucks.
Was es in der Praxis tut (und ich habe diesen Code Dutzende Male selbst geschrieben), geht davon aus, dass someFun/0
eine Funktion ist, die eine Zeichenfolge mit nur Ziffern zurückgibt und diese Zeichenfolge dann in eine Liste konvertiert die Ziffern. Wenn also someFun()
"12345
" zurückgegeben wird, ist das Ergebnis dieses Listenverständnisses [1, 2, 3, 4, 5]
.
Wenn Sie mit dem Konzept einer map
Funktion (wie in MapReduce) vertraut sind, dann sollte das jetzt ziemlich vertraut klingen.
Diese wikibooks Seite sieht aus wie eine gute Einführung in Erlang Listenkomprehensionen:
http://en.wikibooks.org/wiki/Erlang_Programming/List_Comprehensions
Joe Armstrong Buch "Programming Erlang", aus dem Pragmatische Bücherregal, (http://pragprog.com/titles/jaerlang/programming-erlang) umfasst auch Listenkomprehensionen wirklich gut (zusammen mit allem anderen Erlang verwandt). Ausgezeichnetes Buch, sehr zu empfehlen, usw.
tote Links, ya könnte diese aktualisieren möchten. – EvilTeach
@EvilTeach * Shonky-Links. – providence
Links wie gewünscht behoben. –