40 lines
859 B
Text
40 lines
859 B
Text
( unroman
|
|
= nbr,lastVal,val
|
|
. 0:?nbr:?lastVal
|
|
& @( low$!arg
|
|
: ?
|
|
%@?L
|
|
( ?
|
|
& (m.1000)
|
|
(d.500)
|
|
(c.100)
|
|
(l.50)
|
|
(x.10)
|
|
(v.5)
|
|
(i.1)
|
|
: ? (!L.?val) ?
|
|
& (!val:~>!lastVal|!val+-2*!lastVal)
|
|
+ !nbr
|
|
: ?nbr
|
|
& !val:?lastVal
|
|
& ~
|
|
)
|
|
)
|
|
| !nbr
|
|
)
|
|
& (M.1000)
|
|
(MCXI.1111)
|
|
(CMXI.911)
|
|
(MCM.1900)
|
|
(MCMXC.1990)
|
|
(MMVIII.2008)
|
|
(MMIX.2009)
|
|
(MCDXLIV.1444)
|
|
(MDCLXVI.1666)
|
|
(MMXII.2012)
|
|
: ?years
|
|
& (test=.out$(!arg unroman$!arg))
|
|
& ( !years
|
|
: ? (?L.?D) (?&test$!L&~)
|
|
| done
|
|
);
|