重复列表模式

fay*_*fay 0 elixir

复制受给定长度限制的列表模式的最佳方法是什么?

例如:

给定一个模式[1,2,3]和长度7,结果将是[1, 2, 3, 1, 2, 3, 1]

Dog*_*ert 9

我能想到的最简单的方法是使用Stream.cycle/1Enum.take/2:

iex(1)> [1, 2, 3] |> Stream.cycle() |> Enum.take(7)
[1, 2, 3, 1, 2, 3, 1]
Run Code Online (Sandbox Code Playgroud)