实现一个Erlang列表理解,它从列表中获取两个元素并创建一个新的列表列表。Erlang:如何实现Erlang列表理解?
我有这样的代码
pair([], Acc) -> lists:reverse(Acc);
pair(L, Acc0) ->
[ A, B | T ] = L,
Acc = [ [A, B] | Acc0 ],
pair(T, Acc).
的正常工作:
7> l:pair(lists:seq(1,6), []).
[[1,2],[3,4],[5,6]]
,但好像我应该能够实现这个作为一个列表理解。我的Erlang-fu太弱,无法提出。
有什么建议吗?
感谢
这跟着Erlang的口头禅“让它崩溃”,例如,对于'[a]'的情况。 – Tilman
@Tilman是的,该函数是**定义的**来获取元素对,所以如果在列表中有奇数个元素时是错误的。你当然可以总是定义在这种情况下会发生什么,然后处理它。 – rvirding