Annotation of 43BSD/contrib/icon/samples/roman.icn, revision 1.1.1.1

1.1       root        1: #
                      2: #          R O M A N   N U M E R A L S
                      3: #
                      4: 
                      5: #  This program takes Arabic numerals from standard input and writes
                      6: #  the corresponding Roman numerals to standard outout.
                      7: 
                      8: procedure main()
                      9:    local n
                     10:    while n := read() do
                     11:       write(roman(n) | "cannot convert")
                     12: end
                     13: 
                     14: procedure roman(n)
                     15:    local arabic, result
                     16:    static equiv
                     17:    initial equiv := ["","I","II","III","IV","V","VI","VII","VIII","IX"]
                     18:    integer(n) > 0 | fail
                     19:    result := ""
                     20:    every arabic := !n do
                     21:       result := map(result,"IVXLCDM","XLCDM**") || equiv[arabic+1]
                     22:    if find("*",result) then fail else return result
                     23: end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.