То, что делает этот код, берет вывод из someFun()
(который должен вернуть список), и для каждого элемента в списке он присваивает значение элемента переменной X
, а затем вычитает значение ASCII символа 0
от этого значения. Результирующий список является значением всего этого выражения.
На практике (и я сам написал этот код десятки раз), предполагается, что someFun/0
- это функция, которая возвращает строку, содержащую только цифры, и затем преобразует эту строку в список. из цифр. Таким образом, если someFun()
вернул "12345
", результатом этого понимания списка будет [1, 2, 3, 4, 5]
.
Если вы знакомы с концепцией map
функции (как в MapReduce), то это должно звучать довольно знакомо.
Эта страница викибук выглядит как хорошее введение в понимание списка Эрланга:
http://en.wikibooks.org/wiki/Erlang_Programming/List_Comprehensions
Книга Джо Армстронга "Программирование на Эрланге" с Прагматической книжной полки (http://pragprog.com/titles/jaerlang/programming-erlang) также очень хорошо охватывает понимание списка (наряду со всем остальным, связанным с Эрлангом). Отличная книга, настоятельно рекомендуется и т. Д.