Richard Suchenwirth 2002-12-16 - For people experienced in other languages, it may be interesting to compare code snippets between Tcl and other languages, to demonstrate similarities and differences. Please add more from your experience!
C
void countdown(int n) { | proc countdown {n} {
int i; |
for(i=n; i>0; i--) { | for {set i $n} {$i>0} {incr i -1} {
printf("%d...\n", i); | puts $i...
} | }
} | }
- Everything is a command in Tcl. Function definitions are done with the proc command, assignments with the set command, in/decrementation of integers with the incr command.
- Retrieving the value of a variable goes with prefixed $ sign - while mentioning the name of a variable it is not used
- Variable type rarely matters and is not declared. Only incr would complain if its first argument is not an integer
- Formatting values into strings goes in simple cases by straight string concatenation like in $i.... for stronger control, format is comparable to sprintf
- puts, unlike printf(), needs no explicit newline.
Scheme
(define (square x) (* x x)) | proc square x {expr $x * $x}
- Functions are also defined with the proc command. Thier result is the last executed command in the body
- Arithmetics is not done with prefix functions, but Infix-style like in C, in the argument(s) to the expr command