It is common in programming that one sometimes wants to say "infinity", or at least "a number larger than any given number". The ordinary way to do that is to pick a fixed but very large number (e.g. the largest representable number) or to use an unreasonable number (e.g. -1 items) and add extra logic for handling it, but in Tcl there is a better way, thanks to that [everything is a string]: just say "infinity"! Take for example this loop: set limit infinity for {set n 1} {$n <= $limit} {incr n} { # Do some processing } This will not error out, as one might perhaps expect, since comparisons are string comparisons if not both operands are numbers; % expr {1 <= "infinity"} 1 % expr {2 < "infinity"} 1 % expr {2 > "infinity"} 0 % expr {"infinity" > "infinity"} 0 % expr {-3000 < "infinity"} 1 Instead the loop will just go on forever (or, more likely, until a [break] depending on some other condition is executed). It is normally not possible to do arithmetic with infinity (although on some platforms it can get parsed as some kind of double), so one has to execute some care in how it is used, but very often arithmetic with a number won't be needed until one has exceeded it. -- [Lars H] [AM] What a cute little trick! It even works for numbers like .1 ---- I think most programmers if they needed some function to run forever they would script something like this instead: while {true} {#Do Something} The endless while loop is very common in C programs and is easier to read then the forever for loop. [Category Mathematics]