1namespace eval ::iwidgets { 2 variable romand 3 set romand(val) {1000 900 500 400 100 90 50 40 10 9 5 4 1} 4 set romand(upper) { M CM D CD C XC L XL X IX V IV I} 5 set romand(lower) { m cm d cd c xc l xl x ix v iv i} 6 7 proc roman2 {n {case upper}} { 8 variable romand 9 set r "" 10 foreach val $romand(val) sym $romand($case) { 11 while {$n >= $val} { 12 set r "$r$sym" 13 incr n -$val 14 } 15 } 16 return $r 17 } 18 19 proc roman {n {case upper}} { 20 variable romand 21 set r "" 22 foreach val $romand(val) sym $romand($case) { 23 for {} {$n >= $val} {incr n -$val} { 24 set r "$r$sym" 25 } 26 } 27 return $r 28 } 29} 30