#!/usr/bin/ruby
# Translation of: https://rosettacode.org/wiki/Roman_numerals/Encode#ActionScript
func roman2arabic (roman) {
var romanArr = roman.uc.split('');
static lookup = :(
I => 1,
V => 5,
X => 10,
L => 50,
C => 100,
D => 500,
M => 1000,
);
var num = 0;
while (romanArr.len > 0) {
var val = lookup{romanArr.shift};
num += val*(romanArr.exists(0) && (val < lookup{romanArr[0]}) ? -1 : 1);
}
return num;
}
#
## MAIN
#
[:MCMXC:1990, :MMVIII:2008, :MDCLXVI:1666].each { |pair|
var arabic = roman2arabic(pair.first) == pair.second ||
die "Error occurred on #{pair.first}\n";
say "#{pair.first} in arabic is #{arabic}";
}