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