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