30 lines
830 B
Text
30 lines
830 B
Text
[ 2dup <
|
|
if
|
|
[ dip
|
|
[ 2 * - ]
|
|
dup ]
|
|
nip dup
|
|
rot + swap ] is roman ( t p n --> t p )
|
|
|
|
[ 1 roman ] is I ( t p --> t p )
|
|
[ 5 roman ] is V ( t p --> t p )
|
|
[ 10 roman ] is X ( t p --> t p )
|
|
[ 50 roman ] is L ( t p --> t p )
|
|
[ 100 roman ] is C ( t p --> t p )
|
|
[ 500 roman ] is D ( t p --> t p )
|
|
[ 1000 roman ] is M ( t p --> t p )
|
|
|
|
[ 0 1000 rot
|
|
$ "" swap
|
|
witheach
|
|
[ space join
|
|
join ]
|
|
quackery
|
|
drop ] is ->arabic ( $ --> n )
|
|
|
|
$ " MCMXC" dup echo$ say " = " ->arabic echo cr
|
|
$ " MMVIII" dup echo$ say " = " ->arabic echo cr
|
|
$ "MDCLXVI" dup echo$ say " = " ->arabic echo cr
|
|
cr
|
|
$ "I MIX VIVID MILD MIMIC"
|
|
dup echo$ say " = " ->arabic echo cr
|