给定一个包含单个元素的Elixir列表,如何最好地创建一个包含成对相邻元素的列表?这应该适用于任何列表,而不仅仅是包含数字。
输入: [1,2,3,4,5,6,7]
输出: [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]]
以下解决方案有效,但对我来说却显得笨拙。
有没有更好/更简单的方法可以做到这一点?
> {[_|list],_} = Enum.map_reduce([1, 2, 3, 4, 5, 6, 7], nil, fn(x, acc) -> {[acc,x], x} end)
{[[nil, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]], 7}
> list
[[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]]
Enum.chunk_every([1,2,3,4,5,6,7], 2, 1, :discard)
#⇒ [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句