2014-09-16 4 views

ответ

75

Enum.to_list/1 является то, что вы ищете:

iex(3)> Enum.to_list 1..10 
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
+0

Это даже лучше, чем мой ответ. :) – konole

8

Использование Enum.map/2

range = 1..10 
Enum.map(range, fn(x) -> x end) 

или

Enum.map(range, &(&1)) 
13

Общий способ преобразования перечислимого в конкретный коллекционных является Enum.into :

Enum.into 1..10, [] 
#=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

Вы также можете передать функцию преобразования в качестве третьего аргумента:

Enum.into 1..10, %{}, &({&1, &1}) 
#=> %{1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10} 
+3

спасибо, не знаю, третий аргумент, должен быть полезен. – limon

1

Используйте оператор конвейера

1..10 |> Enum.to_list 

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

, а затем вы можете применить дополнительные преобразования на него, как

1..10 |> Enum.to_list |> Enum.sum 

55 

 Смежные вопросы

  • Нет связанных вопросов^_^