Подтвердить что ты не робот

В Elixir, как диапазон может быть преобразован в список?

Я могу объявить диапазон следующим образом:

range = 1..10

Есть ли способ конвертировать диапазон в список?

4b9b3361

Ответ 1

Enum.to_list/1 - это то, что вы ищете:

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

Ответ 2

Общий способ преобразования перечислимого в конкретный собираемый файл 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

Используйте Enum.map/2

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

или

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

Ответ 4

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

1..10 |> Enum.to_list

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

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

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

55