From: matz@... (Yukihiro Matsumoto) Date: 2000-12-23T12:30:54+09:00 Subject: [ruby-talk:7986] Re: Naming of "defined?" Hi, In message "[ruby-talk:7961] Naming of "defined?"" on 00/12/23, craig duncan writes: |Didn't i read that '?' at the end of a method name indicated a boolean |return value? The '?' methods are methods designed to be used as predicates, not methods which CAN be used as predicate. They return either (a) true or false (b) non-false informative value or nil `defined?' falls into (b). In addition, as a rare exception, Thread#alive? returns true for unterminated threads, false for normally terminated threads, and nil for threads terminated by exceptions. matz.