10 lines
363 B
Plaintext
10 lines
363 B
Plaintext
(define encodeGlyphs
|
|
ACC 0 _ -> ACC
|
|
ACC N [Glyph Value | Rest] -> (encodeGlyphs (@s ACC Glyph) (- N Value) [Glyph Value | Rest]) where (>= N Value)
|
|
ACC N [Glyph Value | Rest] -> (encodeGlyphs ACC N Rest)
|
|
)
|
|
|
|
(define encodeRoman
|
|
N -> (encodeGlyphs "" N ["M" 1000 "CM" 900 "D" 500 "CD" 400 "C" 100 "XC" 90 "L" 50 "XL" 40 "X" 10 "IX" 9 "V" 5 "IV" 4 "I" 1])
|
|
)
|