#!/usr/local/bin/tclsh
# $Id: hash2.tcl,v 1.6 2001/05/18 06:35:40 doug Exp $
# http://www.bagley.org/~doug/shootout/
# with help from Branko Vesligaj
proc main {} {
global argv
set n [lindex $argv 0]
for {set i 0} {$i < 10000} {incr i} {
set hash1(foo_$i) $i
}
for {set i $n} {$i > 0} {incr i -1} {
foreach k [array names hash1] {
if {[catch {set hash2($k) [expr {$hash1($k) + $hash2($k)}]}]} {
set hash2($k) $hash1($k)
}
}
}
puts [join [list $hash1(foo_1) $hash1(foo_9999) $hash2(foo_1) $hash2(foo_9999) ] " "]
}
main