On Sunday, 28 April 2013 at 19:19:53 UTC, Walter Bright wrote:
On 4/27/2013 2:58 PM, jerro wrote:
On Saturday, 27 April 2013 at 21:52:30 UTC, Walter Bright
To reiterate, history amply shows that if 'true' and 'false' are not there, then people will define them themselves, inconsistently, and the end result is not helpful to anybody.


So basically, those are to be seen as simple #defines for 0 and 1 and nothing more than that?

I am for a boolean type that is only true and false.

And, if so much needed conversion from int 0 and int non0 to boolean is needed in if() and while(), then simply add ifz(), ifnz(), whilez() and whilenz() to the language.

(that is: ifzero(), infnonzero(), whilezero(), whilenonzero()).

This will really convey the intention of the programmer.

Elsewhere, I see no reason to accept implicit cast from bool to int, and less so in function overloading.

I am in favor of a true boolean type, nothing to do with integers, and of helpers where needed.

Besides, I do not like the idea of a bit type, because of its fractional representation (you need to use an entire byte for it, and unlike other (integer) types, its maximum range of values *does not* completely cover the width of its representation).

I would rather accept a ranged-type that goes from 0 to 1 (sub-range of integers).

In Pascal that would be:

0..1, with a zero-based index

Reply via email to