1######################################################################## 2# 3# trivial utility functions 4# 5# $Revision: 1.2 $, $Date: 2000/03/06 19:36:59 $ 6######################################################################## 7proc b {num} { 8 return [format "%${num}s" ""] 9} 10######################################################################## 11proc cat {infile} { 12 set in [open $infile] 13 set r [read $in] 14 return $r 15} 16######################################################################## 17proc isInt {val} { 18 return [regexp {^[+-]?[0-9]+$} $val] 19} 20######################################################################## 21proc isFloat {val} { 22 if {[catch {expr $val+0.0} res]} {return 0} 23 #if {$res!=$val} {return 0} 24 return 1 25} 26######################################################################## 27proc negInfty {val} { 28 return [string match -oo $val] 29} 30######################################################################## 31proc Infty {val} { 32 return [string match oo $val] 33} 34######################################################################## 35proc Join {j args} { 36 return [join $args $j] 37} 38######################################################################## 39