bearophile wrote:
Don:
In Pascal too (and OCaML, but the situation is different) they are separated. I think here having two operators is better,
Why?

You are intelligent and expert so you must know my answer, so I fear yours is a 
trick question :-)

No, it's not a trick question. You've used Python extensively, I haven't.

Two operators allow to reduce the need for casts (and rounding/truncation), and 
are more explicit, allowing the code to express its meaning better to people 
that come after the original programmer.

OK. I'm trying to get most of the benefits without needing an extra operator.
What I wonder is, in what contexts is / ambiguous or difficult to read?
My feeling is that intentionally mixing integer division and floating-point in the same expression is extremely rare. The effect of my rule would be, that if you see an int anywhere, it's an integer division; and if you see a floating point number anywhere, it's a floating point division.

BTW, does Python allow integer division of floating point numbers?
eg, int_a  = float_b // float_c;   ?
(meaning cast(int)float_b / (cast(int)float_c); ).

My idea fails if:
* I'm completely wrong about the frequency of mixing integer division with floating point. So the cost is high.
OR
* Inadvertant integer division commonly occurs in things like int a = b/c; (which would mean that I'm wrong in assuming it's primarily an implicit casting problem). If the benefit is low, it's not much use.
OR
* There's something I didn't think of. Which is quite probable <g>.

You can put them in the middle of a long expression, so you know what it's happening in the middle of it. This is useful for programming newbies too.

I know there's a C translation of every usage of those two operators, but this 
is beside the point: even if the Laws of C language are sometimes explicit, 
sometimes they are not so natural and easy to remember, because normal people 
are not computers.

Yeah, I agree. C never errs on the side of caution <g>. Much of D involves tightening things up considerably.

Reply via email to