Sha256: 47d1f4baf43d8350e00c722d79c91398af71c2c34c929ab7a03288e13e902be6
Contents?: true
Size: 491 Bytes
Versions: 345
Compression:
Stored size: 491 Bytes
Contents
module RunLength (decode, encode) where import Data.Char (isDigit) decode :: String -> String decode "" = "" decode s = replicate n c ++ decode rest where i = takeWhile isDigit s n = if null i then 1 else read i c = head $ filter (not . isDigit) s rest = drop (1 + length i) s encode :: String -> String encode "" = "" encode s = i ++ c : encode rest where c = head s l = length $ takeWhile (== c) s i = if l == 1 then "" else show l rest = drop l s
Version data entries
345 entries across 345 versions & 1 rubygems