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

Reply via email to