【发布时间】:2018-06-12 13:17:26
【问题描述】:
给定一个包含单个元素的 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]]
【问题讨论】:
标签: elixir