18 lines
573 B
Text
18 lines
573 B
Text
Red [
|
|
Purpose: "Arabic <-> Roman numbers converter"
|
|
Author: "Didier Cadieu"
|
|
Date: "07-Oct-2016"
|
|
]
|
|
|
|
table-r2a: reverse [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"]
|
|
|
|
roman-to-arabic: func [r [string!] /local a b e] [
|
|
a: 0
|
|
parse r [any [b: ["I" ["V" | "X" | none] | "X" ["L" | "C" | none] | "C" ["D" | "M" | none] | "V" | "L" | "D" | "M"] e: (a: a + select table-r2a copy/part b e)]]
|
|
a
|
|
]
|
|
|
|
; Example usage:
|
|
print roman-to-arabic "XXXIII"
|
|
print roman-to-arabic "MDCCCLXXXVIII"
|
|
print roman-to-arabic "MMXVI"
|