【发布时间】:2015-02-02 05:15:26
【问题描述】:
我想流式传输一个列表(预先排序),例如
[1,1,1,2,2,2,2,2,2,3,3,4]
所以它被分成这样的运行
[[1,1,1],[2,2,2,2,2,2],[3,3],[4]]
有没有一种巧妙的方法来做到这一点?
我一直在学习: Stream.transform, Stream.take_while, Enum.split_while, Enum.partition, Enum.flat_map_reduce
最后我需要将答案从数字列表扩展到包含数字的元组
【问题讨论】:
-
我认为你最好的办法是尝试像
zipping 列表本身移动一个,这样你就得到一个包含一个元素及其后继的元组的列表。一旦你有了它,你可以scan来建立这个列表。