W Ruby jest możliwe, aby to zrobić za pomocą ikonaGenerowanie sekwencji liczb naturalnych N
[*1..5]
# => [1, 2, 3, 4, 5]
Jak można to zrobić w Elixir?
Wiem, że prawdopodobnie mógłbym użyć reduce
, ale może jest łatwiejszy sposób?
W Ruby jest możliwe, aby to zrobić za pomocą ikonaGenerowanie sekwencji liczb naturalnych N
[*1..5]
# => [1, 2, 3, 4, 5]
Jak można to zrobić w Elixir?
Wiem, że prawdopodobnie mógłbym użyć reduce
, ale może jest łatwiejszy sposób?
Eliksir ma Range, podobnie jak Ruby. Implementują one kod Enumerable
protocol, więc w większości przypadków nie trzeba ich konwertować na listy. Zakresy zwykle zachowują się tak samo jak list:
iex> [1, 2, 3, 4, 5] |> Enum.map(fn x -> x*x end)
[1, 4, 9, 16, 25]
iex> 1..5 |> Enum.map(fn x -> x*x end)
[1, 4, 9, 16, 25]
Jednakże, jeśli naprawdę potrzebujemy listy z jakiegoś powodu, można zrobić konwersję poprzez Enum.to_list
:
iex> 1..5 |> Enum.to_list
[1, 2, 3, 4, 5]