
It might be a little old and out of fashion - but Tcl is still very much in use, we use it and we can offer you
a learning to program in Tcl training course if you're new to programming, or a
Tcl Programming course if you've programmed in another language before. We also offer a two day
Tk course as a follow up if you're going to be using that GUI.
Tcl is a very stable language that's great for engineers and we quietly get a lot of web site traffic looking at the examples on our web site. It's because one of those examples bubbles up to over 50 accesses per day that I've been reminded just how important the language remains.
Here's part of that popular page:
[full example]
if [expr $cost > 100] {
set cost [expr $cost * 0.8]
puts "SPECIAL Group ticket at $cost"
} elseif [expr $cost > 20] {
set cost [expr $cost * 0.9]
puts "Group ticket at $cost"
} else {
puts "Total Price will be $cost"
}
Although the code looks fairly conventional, Tcl is actually a
command base language rather than an operator based one. And that means that in the code above, spaces and line breaks are significant.
if is a command. It takes a minimum of two
space separated parameters - in this case there's one in square brackets, and one in curly braces. The curly brace parameter lasts severla lines ...
There are five more parameters to
if in this particular example - "elseif", a "[]" condition, a "{}" block, "else" and finally another "{}" block. You'll note that only the "{}" blocks carry on from line to line - normally a new line is teh end of a Tcl command, and that means that placing the "{" on the end of the first line (and preceded by a space) is vital.
I really enjoy working with Tcl / giving courses in the language. For sure, I do more training on the likes of
Lua,
Python,
Ruby and
PHP these days, but please get follow the course links or get in touch if you would like a Tcl course!
(written 2010-03-17, updated 2011-03-01)
Associated topics are indexed under
T050 - Tcl/Tk - Tcl, Tcl/Tk and Expect - General [3286] Should we cover expect and/or Tk on our public Tcl courses? - (2011-05-11)
[3192] Tcl - Some example of HOW TO in handling data files and formats - (2011-03-04)
[2504] Learning to program in ... - (2009-11-15)
[2474] Using Tcl and Expect to automate repetitive jobs - (2009-10-24)
[2429] Tcl scripts / processes on a web server via CGI - (2009-09-27)
T203 - Tcl/Tk - Conditionals and Loops [3571] Comparing loop commands in Tcl - (2012-01-06)
[3570] Trapping errors in Tcl - the safety net that catch provides - (2012-01-06)
[3397] Does a for loop evaluate its end condition once, or on every iteration? - (2011-08-18)
[3189] Tcl - the danger of square brackets in a while command - (2011-03-02)
[2471] A short form of if ... then ... else - (2009-10-23)
[2261] Tcl - nice and nasty - (2009-06-29)
[1696] Saying NOT in Perl, PHP, Python, Lua ... - (2008-07-04)
[1477] Decisions - small ones, or big ones? - (2007-12-18)
[1401] Tcl - using [] or {} for conditions in an if (and while) - (2007-10-23)
[210] Joining lists in Tcl. Indirect variables in Tcl. - (2005-02-12)
Some other Articles
StairsException handling in PHPCar Parking in MelkshamAdding extensions to PHP Open Source applications - callbacksTcl - a great engineering languageStatic class members in PHP - a documented exampleHow to build a test harness into your PHPReaching out to the community - a good case for supportBlowing out the winter cobwebsChanging Times