www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - An implication operator and shift operators

reply Kari Salminen <Kari_member pathlink.com> writes:
Hi,
here are a few thoughts on an implication operator and shift operators:

- Implication operator:

I suggest an implication operator to the language (Taken straight
from the Eiffel language):

(x implies y) == (x ? y : true)

So this would be similar to the AndAnd i.e. && and OrOr i.e. ||
operators in the way that it wouldn't necessarily always evaluate
both of its parameters.

Probably implies wouldn't be the most logical choice seeing that
in D And, Xor, Or etc are not named And, Xor, Or but &, ^ and |
so maybe using => for meaning implication would suffice? (I know,
I know, probably not because it would make it more errorprone to
write => when meaning >= for an example when comparing some values).
And I also know that the implication operator would be mostly just
syntactical sugar but it would help readability if used when needed.

Does anyone have any good ideas what to name the implication-operator -
I mean what characters to choose for it in the D language, should it
ever be taken into it?

- Shift operators:

There's a point about shift operators I don't get yet, but it's
probably just me :). Please enlighten me...

We have << (left shift) and >> (signed right shift) and >>>
(unsigned right shift). Then why don't we have <<< (unsigned left shift)?

---
Kari Salminen
kaasalm NOSPAM at utu dot fi
To email me take out the spaces, NOSPAM and replace at with ' ' and dot with '.'
Oct 08 2004
next sibling parent Stewart Gordon <smjg_1998 yahoo.com> writes:
Kari Salminen wrote:

<snip>
 Probably implies wouldn't be the most logical choice seeing that
 in D And, Xor, Or etc are not named And, Xor, Or but &, ^ and |
 so maybe using => for meaning implication would suffice? (I know,
 I know, probably not because it would make it more errorprone to
 write => when meaning >= for an example when comparing some values).
 And I also know that the implication operator would be mostly just
 syntactical sugar but it would help readability if used when needed.

I guess so....
 There's a point about shift operators I don't get yet, but it's
 probably just me :). Please enlighten me...
 
 We have << (left shift) and >> (signed right shift) and >>>
 (unsigned right shift). Then why don't we have <<< (unsigned left shift)?

Because the sign bit just falls off the end regardless. Stewart.
Oct 08 2004
prev sibling parent "Olaf" <nobody nowhere.nowhere> writes:
"Kari Salminen" <Kari_member pathlink.com> wrote in message
news:ck69v8$1luh$1 digitaldaemon.com...
 Hi,
 here are a few thoughts on an implication operator and shift operators:

 - Implication operator:

 I suggest an implication operator to the language (Taken straight
 from the Eiffel language):

 (x implies y) == (x ? y : true)

 So this would be similar to the AndAnd i.e. && and OrOr i.e. ||
 operators in the way that it wouldn't necessarily always evaluate
 both of its parameters.

 Probably implies wouldn't be the most logical choice seeing that
 in D And, Xor, Or etc are not named And, Xor, Or but &, ^ and |
 so maybe using => for meaning implication would suffice? (I know,
 I know, probably not because it would make it more errorprone to
 write => when meaning >= for an example when comparing some values).
 And I also know that the implication operator would be mostly just
 syntactical sugar but it would help readability if used when needed.

 Does anyone have any good ideas what to name the implication-operator -
 I mean what characters to choose for it in the D language, should it
 ever be taken into it?
 <cut>

x=>y is equivalent to !x||y: x y x=>y !x||y FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE TRUE TRUE Whether that would merit an operator of its own? Dunno...
Nov 07 2004