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

Version Path
trackler-2.2.1.180 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.179 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.178 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.177 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.176 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.175 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.174 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.173 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.172 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.171 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.170 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.169 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.167 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.166 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.165 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.164 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.163 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.162 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.161 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs
trackler-2.2.1.160 tracks/haskell/exercises/run-length-encoding/examples/success-standard/src/RunLength.hs