19 lines
511 B
Text
19 lines
511 B
Text
def digits: [(M:1000"1"), (CM:900"1"), (D:500"1"), (CD:400"1"), (C:100"1"), (XC:90"1"), (L:50"1"), (XL:40"1"), (X:10"1"), (IX:9"1"), (V:5"1"), (IV:4"1"), (I:1"1")];
|
|
templates encodeRoman
|
|
@: 1;
|
|
'$ -> ($)"1" -> #;' !
|
|
when <$digits($@)::value..> do
|
|
$digits($@)::key !
|
|
$ - $digits($@)::value -> #
|
|
when <1"1"..> do
|
|
@:$@ + 1;
|
|
$ -> #
|
|
end encodeRoman
|
|
|
|
1990 -> encodeRoman -> !OUT::write
|
|
'
|
|
' -> !OUT::write
|
|
2008 -> encodeRoman -> !OUT::write
|
|
'
|
|
' -> !OUT::write
|
|
1666 -> encodeRoman -> !OUT::write
|