I'm new to TCL, and trying to set up a simple recursion loop. The code I have works up until the recursion finishes, then it begins throwing errors. This is my code:
set testNum 0
proc raiseTest { a } {
puts $a
if { $a == 5 } {
puts "Done!"
} elseif { $a != 5 } {
incr a
puts "Going!"
[raiseTest $a]
}
}
[ raiseTest $testNum ]
Once the proc reaches 5 and finishes it's last loop, I get hit with an invalid command name "" error followed by a ton of invoked from within errors and I have no idea why. Can someone help me out?
Two things
elseif {$a != 5}is redundant, you can replace it with justelseTo further discuss point #1, the line right after
puts "Going!", which reads:This line calls
raiseTest $a, then because of the square brackets, capture the output of that call (an empty string because nothing was returned) and use that as the name of a proc and call it.Here is an example:
That being said, the code should look like this, with the square brackets removed: