99 道 Elm 問題/問題 11/解決方案
外觀
< 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'