Tcl
Tcl (lege: Ticel) codex programmandi computatorii est. Tcl est abbreviatio pro nomine (anglice) "Tool command language" (latine: lingua mandandi instrumentorum).Est lingua simplicissima et fortissima, in qua "omnia sunt catenae litterarum", et est fonte aperta (open source). Litterae Unicodicis utentur, sic potest scribere Graece, Arabice et aliis linguis multis.
Tcl in systemis internis Macintosh (Apple computatoriis), Unix, Linux et Windows utitur.
Ecce simplex exemplum scripti (anglice: script) Tcl:
puts "dona numerum" gets stdin numerus puts "Quadratum est: [expr $numerus*$numerus]"
Scriptum est compositum iussorum. Iussa sunt composita verborum, separata spatiis. Iussi primum verbum est nomen iussi (exempli gratia, "puts", "gets", "expr").
Altra exempla:
Collatio numerorum romanorum :
proc roman:sort list { set map {IX VIIII L Y XC YXXXX C Z D {\^} ZM {\^ZZZZ} M _} foreach {from to} $map { regsub -all $from $list $to list } set list [lsort $list] foreach {from to} [lrevert $map] { regsub -all $from $list $to list } set list }
% roman:sort {X IX V VI III} III V VI IX X
Conversio numerorum arabicorum romane:
proc roman:numeral {i} { set res "" foreach {value roman} { 1000 M 900 CM 500 D 400 CD 100 C 90 XC 50 L 40 XL 10 X 9 IX 5 V 4 IV 1 I} { while {$i>=$value} { append res $roman incr i -$value } } set res }
% roman:numeral 1789 MDCCLXXXIX
Conversio numerorum romanorum arabice:
proc roman:get {s} { array set r_v {M 1000 D 500 C 100 L 50 X 10 V 5 I 1} set last 99999; set res 0 foreach i [split [string toupper $s] ""] { if [catch {set val $r_v($i)}] { error "$i non est numerus romanus in $s" } incr res $val if {$val>$last} {incr res [expr -2*$last]} set last $val } set res }
% roman:get MDCCLXXXIX 1789