進入內容

99 道 Elm 問題/問題 11/解決方案

來自維基百科,一個開放世界的開放書籍

解決方案 1:遞迴版本

runLengthEncode list =
    case list of
        [] -> []
        [ x ] -> [ Single x ]
        x :: xs ->
            case runLengthEncode xs of
                [] -> []
                Single x' :: xs' ->
                    if x' == x then
                        Multiple 2 x' :: xs'
                    else
                        Single x :: Single x' :: xs'
                Multiple n x' :: xs' ->
                    if x' == x then
                        Multiple (n + 1) x' :: xs'
                    else
                        Single x :: Multiple n x' :: xs'
華夏公益教科書