特定の値から出発して演算を繰り返し値の並びを出力する unfold 。 そういえば Ruby に unfold ってないんだっけ? というのが発端。 unfold とは 早い話が fold の逆です。 Elixir では Stream.unfold/2 が定義されています。 # 1 から始めて、前の値に 1 を加える Stream.unfold(1, fn x -> {x, x + 1} end) |> Enum.take(10) #=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 1 から始めて、前の値を 2 倍にする Stream.unfold(1, fn x ->…