September 2017 Update

This commit is contained in:
Ingy döt Net 2017-09-23 10:01:46 +02:00
parent bba7bfd280
commit ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions

View file

@ -1,15 +1,28 @@
import Data.List (mapAccumL)
roman :: Int -> String
roman n = concatMap concat . snd $ mapAccumL tr n
[(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")]
where
tr a (m, s) = (r, replicate q s)
where
(q, r) = quotRem a m
roman n =
concat
(snd
(mapAccumL
(\a (m, s) ->
let (q, r) = quotRem a m
in (r, [1 .. q] >> s))
n
[ (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")
]))
main :: IO ()
main = mapM_ (putStrLn . roman) [1666, 1990, 2008, 2016, 2017]