我有一个由 0 和 1 组成的一维Repa
数组,我想计算它的游程编码。例如:转弯[0,0,1,1,1,0,0,0,1,0,1,1] into [2,3,3,1,1,2]
或类似的东西。(由于可读性,我使用列表表示)
理想情况下,我想要 1 的运行长度并忽略 0。所以[0,0,1,1,1,0,0,0,1,0,1,1] becomes [3,1,2]
。
我希望结果也是一个 ( Repa
) 数组。
我怎样才能做到这一点Repa
?我不能使用map
,或者traverse
因为他们一次只给我一个元素。我可以尝试fold
使用某种特殊的累加器,但这似乎并不理想,我什至不知道它是否可能(由于单子定律)。