3 ms·
Infinite, yes, but I would say it's not quite as core to the language as it is in Haskell where everything's lazy. Infinite streams are quite simple though:
by finder83 2y ago
Infinite, yes, but I would say it's not quite as core to the language as it is in Haskell where everything's lazy. Infinite streams are quite simple though:
Stream.iterate(1, fn(x) -> x end)
|> Enum.take(5)
[1, 1, 1, 1, 1]
- tromp 2y agoHow do you use that for lists that do not simply iterate, like ghci> fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) ghci> take 10 fibs [0,1,1,2,3,5,8,13,21,34] ?
- darcien 2y agoYou can use Stream.unfold/2: Stream.unfold({0,1}, fn {a,b} -> {a,{b,a+b}} end) |> Enum.take(10) [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] https://rosettacode.org/wiki/Fibonacci_sequence#Elixir https://rosettacode.org/wiki/Fibonacci_sequence#Elixir