【发布时间】:2018-07-20 16:17:31
【问题描述】:
我正在寻找一种方法,可以让我在 Elixir 中的列表上创建 滑动窗口,如下所示:
[1,2,3,4,5,6]
|> Enum.magic_function(2)
--> [[1,2],[2,3],[3,4],[4,5],[5,6]]
类似于 chunk_every 函数,但每次移位 1。
【问题讨论】:
标签: elixir
我正在寻找一种方法,可以让我在 Elixir 中的列表上创建 滑动窗口,如下所示:
[1,2,3,4,5,6]
|> Enum.magic_function(2)
--> [[1,2],[2,3],[3,4],[4,5],[5,6]]
类似于 chunk_every 函数,但每次移位 1。
【问题讨论】:
标签: elixir
您可以使用Enum.chunk_every/4 的第三个参数来指定在每个块之后要跳过多少个元素(这里是1),第四个参数告诉它如果小于指定长度则丢弃最后一个块.
iex(1)> [1, 2, 3, 4, 5, 6] |> Enum.chunk_every(2, 1, :discard)
[[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]]
【讨论】: