Posted to tcl by mjanssen at Sat Oct 31 00:10:12 GMT 2009view pretty
proc vector {vector {method {}} args} { if {$method eq {} } { return $vector } switch $method { inner { set res 0 set other [lindex $args 0] foreach e1 $vector e2 [$other] { set res [expr {$res+$e1*$e2}] } return $res } @ { return [lindex $vector [lindex $args 0]] } } } set a {vector {1 2 3}} set b {vector {1 2 3}} puts [$a inner $b]