web-dev-qa-db-ja.com

Elixirでは、どのように範囲をリストに変換できますか?

次のように範囲を宣言できます。

range = 1..10

範囲をリストに変換する方法はありますか?

45
epotter

Enum.to_list/1はあなたが探しているものです:

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

列挙可能を特定の収集可能に変換する一般的な方法はEnum.into

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

変換関数を3番目の引数として渡すこともできます。

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}
16
Patrick Oscity

使用する Enum.map/2

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

または

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

パイプライン演算子を使用する

1..10 |> Enum.to_list

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

その後、次のようにさらに変換を適用できます

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

55
3
PlagueHammer