У меня есть одномерный массив Repa
, который состоит из 0 и 1, и я хочу рассчитать его кодировку длины пробега. Например: поворот [0,0,1,1,1,0,0,0,1,0,1,1] into [2,3,3,1,1,2]
или что-то подобное. (Я использую представление списка из-за удобочитаемости)Кодировка длины строки массива Repa
В идеале, мне бы хотелось, чтобы длина пробега 1 и игнорировались 0. So [0,0,1,1,1,0,0,0,1,0,1,1] becomes [3,1,2]
.
Я хотел бы получить результат (Repa
).
Как это сделать, используя Repa
? Я не могу использовать map
или traverse
, так как они дают мне только один элемент за раз. Я мог бы попробовать fold
с каким-то специальным аккумулятором, но это не кажется идеальным, и я не знаю, что это даже возможно (из-за законов монады).
Является ли ваш массив одномерным? Если нет: вы хотите кодирование для каждой строки или для одномерного представления n-dim вещи? – sdx23
@ sdx23 Мой массив одномерный. – Valerie94
Репа не создана для такого рода вещей. Вам лучше всего использовать что-нибудь еще ... Зачем вам нужна репа? – Alec