Ce que ce code fait est de prendre la sortie de someFun()
(qui doit retourner une liste), et pour chaque élément de la liste, il attribue la valeur de l'élément à la variable X
puis en soustrayant la valeur ASCII du caractère 0
à partir de cette valeur. La liste résultante est alors la valeur de cette expression entière. Ce qu'il fait, en pratique (et j'ai écrit ce code des dizaines de fois moi-même), suppose que someFun/0
est une fonction qui retourne une chaîne avec juste des chiffres, puis convertit cette chaîne en une liste de les chiffres. Ainsi, si someFun()
a renvoyé "12345
", le résultat de cette compréhension de la liste est [1, 2, 3, 4, 5]
.
Si vous êtes familier avec le concept d'une fonction map
(comme dans MapReduce), cela devrait vous sembler familier.
Cette page Wikibooks ressemble à une bonne introduction à la liste Erlang compréhensions:
http://en.wikibooks.org/wiki/Erlang_Programming/List_Comprehensions
livre de Joe Armstrong "Programmation Erlang", du Pragmatic Bookshelf, (http://pragprog.com/titles/jaerlang/programming-erlang) couvre également la liste des compréhensions très bien (le long avec tout le reste lié à Erlang). Excellent livre, fortement recommandé, etc.
Liens morts, ya peut-être envie de mettre à jour ce. – EvilTeach
@EvilTeach * Liens Shonky. – providence
Liens corrigés comme demandé. –