Sha256: 5f0cc2df5ded3e9bab403f21b5d4f609247fa1f2b16a3b1779a1705cf5362c06

Contents?: true

Size: 936 Bytes

Versions: 262

Compression:

Stored size: 936 Bytes

Contents

module RomanNumeral

let numeralThresholds = [(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 toRomanLoop remainder acc thresholds =         
    match thresholds with
        | [] -> acc
        | (threshold, numeral)::xs ->
            if threshold <= remainder then toRomanLoop (remainder - threshold) (acc + numeral) thresholds
            else toRomanLoop remainder acc xs

let toRoman (arabicNumeral: int) = toRomanLoop arabicNumeral "" numeralThresholds

Version data entries

262 entries across 262 versions & 1 rubygems

Version Path
trackler-2.2.1.44 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.43 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.42 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.41 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.40 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.39 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.38 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.37 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.36 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.35 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.34 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.33 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.32 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.31 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.30 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.29 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.28 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.27 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.26 tracks/fsharp/exercises/roman-numerals/Example.fs
trackler-2.2.1.25 tracks/fsharp/exercises/roman-numerals/Example.fs