Fuzzy logic is logic with truth values that are not necessarily 0 and 1, but somewhere in between. Here's code, mostly by [dkf] as seen in the [Tcl chatroom] on 2003-12-05: proc fuzzyAnd {x y} {expr {$x*$y}} proc fuzzyNot {x} {expr {1.-$x}} proc fuzzyTrue {} {expr {1.}} proc fuzzyFalse {} {expr {0.}} proc fuzzyOr {x y} {fuzzyNot [fuzzyAnd [fuzzyNot $x] [fuzzyNot $y]]} proc fuzzyXor {x y} { fuzzyOr [fuzzyAnd $x [fuzzyNot $y]] [fuzzyAnd [fuzzyNot $x] $y] } proc fuzzyEq {x y} {fuzzyNot [fuzzyXor $x $y]} ---- [Category Concept]