19 lines
847 B
Text
19 lines
847 B
Text
[ $ ""
|
|
swap 1000 /mod $ "M" rot of rot swap join swap
|
|
dup 900 < not if [ 900 - dip [ $ "CM" join ] ]
|
|
dup 500 < not if [ 500 - dip [ $ "D" join ] ]
|
|
dup 400 < not if [ 400 - dip [ $ "CD" join ] ]
|
|
100 /mod $ "C" rot of rot swap join swap
|
|
dup 90 < not if [ 90 - dip [ $ "XC" join ] ]
|
|
dup 50 < not if [ 50 - dip [ $ "L" join ] ]
|
|
dup 40 < not if [ 40 - dip [ $ "XL" join ] ]
|
|
10 /mod $ "X" rot of rot swap join swap
|
|
dup 9 < not if [ 9 - dip [ $ "IX" join ] ]
|
|
dup 5 < not if [ 5 - dip [ $ "V" join ] ]
|
|
dup 4 < not if [ 4 - dip [ $ "IV" join ] ]
|
|
$ "I" swap of join ]
|
|
is ->roman ( n --> $ )
|
|
|
|
1990 dup echo say " = " ->roman echo$ cr
|
|
2008 dup echo say " = " ->roman echo$ cr
|
|
1666 dup echo say " = " ->roman echo$ cr
|