True or False. Tcl has no separate Boolean type, like in C, the integers 0 (false) and 1 (true - in fact any nonzero integer) are used. [NEM]: Although [expr] will also accept "true" and "false" (and "yes"/"no"..) as Boolean values. [1S] In fact, there's no separate Integer type in [Tcl] as well -- everything is a string. A proper boolean value is either a proper integer, with, like in [C], zero meaning false and non-zero meaning true, or one of the following: '''yes''', '''no''', '''true''', '''false''', '''on''', or '''off'''. [RS] The canonical forms however, like [expr] produces them, are 1 and 0. See [Boolean Logic] or [Integers as Boolean Functions]. ---- <> Boolean and the comparision operators '''==''' and '''!=''' [HaO] 2011-05-02 Comparisions with '''==''' or '''!=''' do not work with booleans not in canonical form: ====== % expr {true == 1} 0 ====== This issue may be avoided using the '''bool()''' function to bring strings in boolean canonical form: ====== % expr {bool(true) == bool(1)} 1 ====== This is only recommeded if two variables contain boolean data. ====== expr {bool($b1) == bool($b2)} ====== otherwise, one would use: ====== expr { $b1 } expr { ! $b1 } ====== <> ---- [[ [Category Glossary] ]]