4 dropped unnecessary parens (-1 char)
source | link

Ruby, 136134

i=gets
Hash[*%w[IV %w[IV,4 IX ,9 XL ,40 XC ,90 CD ,400 CM ,900 I ,1 V ,5 X ,10
L L,50  
C ,100 D ,500 M ,1000].flatten].map{|k|s|k,v|iv=s.split ?,;i.gsub!(k,?++v)}
puts eval i

Ruby, 136

i=gets
Hash[*%w[IV 4 IX 9 XL 40 XC 90 CD 400 CM 900 I 1 V 5 X 10
L 50 C 100 D 500 M 1000].flatten].map{|k,v|i.gsub!(k,?++v)}
puts eval i

Ruby, 134

i=gets
%w[IV,4 IX,9 XL,40 XC,90 CD,400 CM,900 I,1 V,5 X,10 L,50 
C,100 D,500 M,1000].map{|s|k,v=s.split ?,;i.gsub!(k,?++v)}
puts eval i
3 each->map (-1 char)
source | link

Ruby, 137136

i=gets
Hash[*%w[IV 4 IX 9 XL 40 XC 90 CD 400 CM 900 I 1 V 5 X 10
L 50 C 100 D 500 M 1000].flatten].eachmap{|k,v|i.gsub!(k,?++v)}
puts eval i

Ruby, 137

i=gets
Hash[*%w[IV 4 IX 9 XL 40 XC 90 CD 400 CM 900 I 1 V 5 X 10
L 50 C 100 D 500 M 1000].flatten].each{|k,v|i.gsub!(k,?++v)}
puts eval i

Ruby, 136

i=gets
Hash[*%w[IV 4 IX 9 XL 40 XC 90 CD 400 CM 900 I 1 V 5 X 10
L 50 C 100 D 500 M 1000].flatten].map{|k,v|i.gsub!(k,?++v)}
puts eval i
2 factored out '+'
source | link

Ruby, 147137

i=gets
Hash[*%w[IV +44 IX +99 XL +4040 XC +9090 CD +400400 CM +900900 I +11 V +5
X5 +10X 10
L +5050 C +100100 D +500500 M +1000]1000].flatten].each{|k,v|i.gsub!(k,v?++v)}
puts eval i

Ruby, 147

i=gets
Hash[*%w[IV +4 IX +9 XL +40 XC +90 CD +400 CM +900 I +1 V +5
X +10 L +50 C +100 D +500 M +1000].flatten].each{|k,v|i.gsub!(k,v)}
puts eval i

Ruby, 137

i=gets
Hash[*%w[IV 4 IX 9 XL 40 XC 90 CD 400 CM 900 I 1 V 5 X 10
L 50 C 100 D 500 M 1000].flatten].each{|k,v|i.gsub!(k,?++v)}
puts eval i
1
source | link