Task

Create a function taking a positive integer as its parameter and returning a string containing the Roman numeral representation of that integer. Modern Roman numerals are written by expressing each digit separately, starting with the left most digit and skipping any digit with a value of zero.



In Roman numerals:

 1990 is rendered: 1000=M, 900=CM, 90=XC; resulting in MCMXC
 2008 is written as 2000=MM, 8=VIII; or MMVIII
 1666 uses each Roman symbol in descending order: MDCLXVI


toRoman←{
    ⍝ Digits and corresponding values
    ds←((⊢≠⊃)⊆⊢)' M CM D CD C XC L XL X IX V IV I'
    vs←1000, ,100 10 1∘.×9 5 4 1
    ⍝ Input ≤ 0 is invalid
    ⍵≤0:⎕SIGNAL 11
    {   0=d←⊃⍸vs≤⍵:⍬    ⍝ Find highest digit in number
        (d⊃ds),∇⍵-d⊃vs  ⍝ While one exists, add it and subtract from number
    }⍵
}