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