RosettaCodeData/Task/Roman-numerals-Decode/Icon/roman-numerals-decode-2.icon

21 lines
346 B
Text
Raw Permalink Normal View History

2013-04-10 23:57:08 -07:00
procedure unroman(s) #: convert Roman numeral to integer
local nbr,lastVal,val
nbr := lastVal := 0
s ? {
while val := case map(move(1)) of {
"m": 1000
"d": 500
"c": 100
"l": 50
"x": 10
"v": 5
"i": 1
} do {
nbr +:= if val <= lastVal then val else val - 2 * lastVal
lastVal := val
}
}
return nbr
end