Thread overview
Python 2.3 alpha incorporates bool type
Feb 13, 2003
Mark Evans
Feb 14, 2003
Burton Radons
Feb 14, 2003
Sean L. Palmer
Feb 14, 2003
Lars Ivar Igesund
Feb 16, 2003
Burton Radons
Feb 14, 2003
Roberto Mariottini
February 13, 2003
See
http://www.python.org/peps/pep-0285.html

Python has been around for well over a decade and finally bit the bullet. There's a lesson here for D.

Mark


February 14, 2003
Mark Evans wrote:
> See
> http://www.python.org/peps/pep-0285.html
> 
> Python has been around for well over a decade and finally bit the bullet.
> There's a lesson here for D.

"bit" has been "bool" in all ways but name since 0.50, three months ago.

February 14, 2003
So can we pass them as inout parameters yet?  ;)

At least predefine true to equal 1 (or -1, or ~0, or whatever) and false to equal 0 so everyone else doesn't have to.  Those two words are not going to be used as identifiers by sane people. anyway.  Might as well reserve them.

Do if/while/etc take a bit implicitly, or does it take an int and compare with zero?

What is bit's .toString property defined to produce for each value?

Also what are the defined semantics of conversion from int or float to bool? Surely it doesn't just keep the low bit and discard the rest, as for instance int to byte would do.  If you cast bool to int what do you get?  Is a bit signed, or unsigned?  The types section in the D docs doesn't mention these things, but they definitely need to be defined.

Sean

"Burton Radons" <loth@users.sourceforge.net> wrote in message news:b2hno8$86o$1@digitaldaemon.com...
> Mark Evans wrote:
> > See
> > http://www.python.org/peps/pep-0285.html
> >
> > Python has been around for well over a decade and finally bit the
bullet.
> > There's a lesson here for D.
>
> "bit" has been "bool" in all ways but name since 0.50, three months ago.


February 14, 2003
"Sean L. Palmer" <seanpalmer@directvinternet.com> wrote in message news:b2i6t1$kbp$1@digitaldaemon.com...
> So can we pass them as inout parameters yet?  ;)
>
> At least predefine true to equal 1 (or -1, or ~0, or whatever) and false
to
> equal 0 so everyone else doesn't have to.  Those two words are not going
to
> be used as identifiers by sane people. anyway.  Might as well reserve
them.
>

Look at the bottom of this page:

http://www.digitalmars.com/d/expression.html

Lars Ivar Igesund


February 14, 2003
"Mark Evans" <Mark_member@pathlink.com> ha scritto nel messaggio news:b2h7sq$2ruo$1@digitaldaemon.com...
> See
> http://www.python.org/peps/pep-0285.html
>
> Python has been around for well over a decade and finally bit the bullet. There's a lesson here for D.

For everyone not seeing the need for a Boolean type in a language:

 1 - Read 3 times the entire chapter about "Boolean algebra" of your good
old College book.
 2 - Say 100 times the following sentences:
        - "A boolean is not an integer, an integer is not a boolean, they
are _algebraicly_ intrinsecally different"
        - "If 7 == true and true == -145 then 7 == -145"
        - "Why zero == false and nonzero == true? Why not negative == false
and positive == true? Why not MAX_INT == true and random(MAX_INT) == false?"
        - "Why the h**l all widespread laguages, sooner or later, include a
f**ing boolean type?"
 3 - If you are not yet persuaded, goto 1
 4 - If you are not persuaded and you are reading this, tell your analyst.

Ciao


February 16, 2003
Sean L. Palmer wrote:
> So can we pass them as inout parameters yet?  ;)
> 
> At least predefine true to equal 1 (or -1, or ~0, or whatever) and false to
> equal 0 so everyone else doesn't have to.  Those two words are not going to
> be used as identifiers by sane people. anyway.  Might as well reserve them.

Argh, these constants have been in the language since long before I got
here.

> Do if/while/etc take a bit implicitly, or does it take an int and compare
> with zero?

If it took an int, "if (0.9)" would be false.  So of course it takes a
bit, inserting an explicit cast if necessary.

> What is bit's .toString property defined to produce for each value?

There is no toString property for base types.

> Also what are the defined semantics of conversion from int or float to bool?
> Surely it doesn't just keep the low bit and discard the rest, as for
> instance int to byte would do.  If you cast bool to int what do you get?  Is
> a bit signed, or unsigned?  The types section in the D docs doesn't mention
> these things, but they definitely need to be defined.

They should be.  The only mention is in the Changes page.  These
assignments are equivalent:

     bit a;
     type b;

     a = cast (bit) b;
     a = (b ? true : false);