The word icon can have several meanings within the computing community.
For instance, an icon can be a graphical image used within a GUI application to represent some action to take. Tklib includes an ico package with specific icon-related capabilities.
The BWidget toolkit supports toolbars with icons very nicely.
You can get an excellent collection of beautiful icons, complete with the supporting software to integrate them into your Tk application, from Adrian Davis' Tk ICONS project.
See also:
Icon [L1 ] is a programming language with a long and rich history, although it is even more obscure than Tcl.
Also, see About Tcl and popularity
There are several points of similarity between the two languages, along with many more differences.
The data structures are implemented in a way that allows a substantial amount of polymophism. The syntax for iterating through all the values in a set, or all the elements in a list, or even all the characters in a string is pretty much the same.
Some of the differences are equally significant.
escargo 10/28-30/2002
ulis, 2005-04-22. (following text comprise excerpts from [L2 ])
Icon has notions of success and failure that added to the notion of generator permits thing such:
sentence := "Store it in the neighboring harbor" every i := find("or", sentence) do write(i)
which writes all the positions at which "or" occurs in sentence. For the example above, these are 3, 23, and 33.
Compare Tcl's
% regexp -all -indices -inline or "Store it in the neighboring harbor" {2 3} {22 23} {32 33}
Other interesting notion is suspension:
procedure findodd(s1, s2) every i := find(s1, s2) do if i % 2 = 1 then suspend i end
is a procedure that generates the odd-valued positions at which s1 occurs in s2. The suspend control structure returns a value from the procedure, but leaves it in suspension so that it can be resumed for another value. When the loop terminates, control flows off the end of the procedure without producing another value.
See continuation or coroutine.
MC: The book The Icon Programming Language went out-of-print, rights reverted to the authors who placed the book in the public domain, and PDFs online at [L3 ].