Posted to tcl by mjanssen at Wed Aug 26 16:26:57 GMT 2009view pretty
proc filter {list proc} { puts $list set result {} foreach element $list {if {![$proc $element]} {lappend result $element}} return $result } proc alive server { return [ping $server] } proc ping {a} {if {$a eq "localhost"} {return 1} else {return 0} } set servers {localhost localhost localhost abcd} while {[llength [set servers [filter $servers alive]]]>0 && [incr retry] < 4} {}