'''Question:''' Why is TCL syntax so weird? '''Answer:''' it's not. Everything else is weird. Okay, you might not buy this. I don't either, completely. The point is, though, that TCL may be the only language I've ever heard of where there are no special/built-in functions. There is no Pascal '''println''' that allows variable arguments when every other function has a fixed number of arguments. [LV] On the other hand, variable arguments are just fine in Tcl. It is just that the default output command, [puts], requires one string as its output format. If someone wanted to write something like println, they could write a proc that would collect its arguments, hand them to format and then to puts. There is no C '''for''' that has three arguments separated by semi-colons where each argument can have any number of operations separated by commas. [LV] There are, however, several looping constructs that you can do looping - for instance, where in C you would write: for (i=0;i<10;i++) { printf("x is %s\n", x); } in tcl you would write: [for] {[set] x 0} {$x<10} {[incr] x} { puts "x is $x" } It is real simple: a '''command''' followed by zero or more '''arguments'''. That's it. Unfortunately, that means a simple assignment statement has to be written funny. Trying to say a = "12345" would try to run the '''a''' command, which probably doesn't exist. If you try to use Perl-like syntax, you might try $a = "12345" which would also fail because the parser would try to get the value of a variable called '''a''' and treat that as the command name (see [Substituting Command Names]). [LV] Unless you play games with [Salt and Sugar], which allows you to write assignments in more unusual ways. So, TCL has a '''set''' command that takes two arguments: the first is the name of a variable and the second is the value. I just think it's weird because everything else has special cases. [LV] other languages use set - csh for instance, which apparently provides a number of influences on Tcl. The original BASIC required a syntax like: let a = 1 which is even worse! ---- Comments? Add'em here!