RosettaCodeData/Task/First-class-environments/Tcl/first-class-environments.tcl

32 lines
613 B
Tcl

package require Tcl 8.5
for {set i 1} {$i <= 12} {incr i} {
dict set hailenv hail$i [dict create num $i steps 0]
}
while 1 {
set loopagain false
foreach k [dict keys $hailenv] {
dict with hailenv $k {
puts -nonewline [format %4d $num]
if {$num == 1} {
continue
} elseif {$num & 1} {
set num [expr {3*$num + 1}]
} else {
set num [expr {$num / 2}]
}
set loopagain true
incr steps
}
}
puts ""
if {!$loopagain} break
}
puts "Counts..."
foreach k [dict keys $hailenv] {
dict with hailenv $k {
puts -nonewline [format %4d $steps]
}
}
puts ""