On Thu, May 11, 2006 at 07:44:54AM -0400, Elyse M. Grasso wrote: : Is "but false" now spelled "but False"? If not, if there a reason for the : asymmetry?
Yes, the false value is False now, just as the true value is not True. The reason for changing them is to avoid confusion with the built-in true() function, and the theoretical false() function, which is actually spelled "not". The Bool type is an enum with values <False True>. As with any enum, we also treat those names as subset types. Indeed, any constant can function as a subset type. Constant functions are naturally 0-ary, and in C culture tend to be uppercase anyway. So arguably, we could have a rule or policy that 0-ary functions are generally uppercase, not just the constant ones. Instead of time, we'd have Time. Then the 0-or-1-ary functions could be rand(42) vs Rand, and the Rand form would never look for an argument. Defining a sub baz ($x?) {...} would also define sub Baz () {...} Have to think about that some more, though. Could also say that, unlike a provisional "foo", a provisional "Foo" would be considered 0-ary rather than list op. As with any provisional, a Foo would have to resolve to a sub Foo () or a sub foo ($x?) by the end of the compilation. Hmm. Larry