Sha256: 2f68c1ec458dbe6d5c605a217bd9b667e7123667429b361efcf2cbabddc81492

Contents?: true

Size: 524 Bytes

Versions: 396

Compression:

Stored size: 524 Bytes

Contents

module Roman (numerals) where

numerals :: Int -> Maybe String
numerals = Just . go numeralMap
  where
    go pairs@((value, digits):pairs') n
      | n >= value = digits ++ go pairs (n - value)
      | otherwise  = go pairs' n
    go [] _ = ""
    numeralMap = [ (1000, "M"), (900, "CM")
                 , (500, "D"), (400, "CD")
                 , (100, "C"), (90, "XC")
                 , (50, "L"), (40, "XL")
                 , (10, "X"), (9, "IX")
                 , (5, "V"), (4, "IV")
                 , (1, "I") ]

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.78 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.77 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.76 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.75 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.74 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.73 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.72 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.71 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.70 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.69 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.68 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.67 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.66 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.65 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.64 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.63 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.62 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.61 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.60 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs
trackler-2.2.1.59 tracks/haskell/exercises/roman-numerals/examples/success-standard/src/Roman.hs