Posted to tcl by mjanssen at Mon Sep 16 07:46:07 GMT 2013view raw
- proc my_mrange {a b args} {
- set result {}
- set start [expr {min($a,$b)}]
- set stop [expr {max($a,$b)}]
- for {set i $start} {$i <= $stop} {incr i} {
- if {[llength $args]%2==0 && $args ne {}} {
- foreach item [my_mrange {*}$args] {
- lappend result [list $i {*}$item]
- }
- } else {
- lappend result $i
- }
- }
- if {$b < $a} {
- return [lreverse $result]
- } else {
- return $result
- }
- }