let writeroman n = let numerals = [(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")] let rec acc (v, r) (m, s) = if (v < m) then (v, r) else acc (v-m, r+s) (m, s) List.fold acc (n, "") numerals |> snd