Guest User

Untitled

a guest
Oct 23rd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import Data.List
  2.  
  3. numlist = [(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")]
  4.  
  5. arab2roman n = concat $ snd $ mapAccumL f n numlist
  6.     where f x (k, v) = let n = div x k in (x - n * k, concat $ replicate n v)
  7.  
  8. main = mapM_ (putStrLn . arab2roman) [1..4000]
Add Comment
Please, Sign In to add comment