
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 as below, or enter http://melksh.am/nnnn for individual articles
T203 - Tcl/Tk - Conditionals and Loops [210] Joining lists in Tcl. Indirect variables in Tcl. - (2005-02-12)
[1401] Tcl - using [] or {} for conditions in an if (and while) - (2007-10-23)
[1477] Decisions - small ones, or big ones? - (2007-12-18)
[1696] Saying NOT in Perl, PHP, Python, Lua ... - (2008-07-04)
[2261] Tcl - nice and nasty - (2009-06-29)
[2471] A short form of if ... then ... else - (2009-10-23)
[3189] Tcl - the danger of square brackets in a while command - (2011-03-02)
[3397] Does a for loop evaluate its end condition once, or on every iteration? - (2011-08-18)
[3570] Trapping errors in Tcl - the safety net that catch provides - (2012-01-06)
[3571] Comparing loop commands in Tcl - (2012-01-06)
[4322] Learning to Program - the conditional statement (if) - (2014-11-21)
[4323] Learning to program - Loop statements such as while - (2014-11-22)
[4455] Working out distance between places, using OS grid references and a program in Tcl - (2015-03-11)
T050 - Tcl/Tk - Tcl, Tcl/Tk and Expect - General [2429] Tcl scripts / processes on a web server via CGI - (2009-09-27)
[2474] Using Tcl and Expect to automate repetitive jobs - (2009-10-24)
[2504] Learning to program in ... - (2009-11-15)
[3192] Tcl - Some example of HOW TO in handling data files and formats - (2011-03-04)
[3286] Should we cover expect and/or Tk on our public Tcl courses? - (2011-05-11)
[4206] Writing the perfect program in Tcl? - (2013-11-13)
[4434] Public training courses - upcoming dates - (2015-02-21)
[4460] Using Object Oriented Tcl and the Tk toolkit together - real life example - (2015-03-12)
[4616] Still teaching Tcl in 2016? - (2016-01-06)
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