Robert Fraser Wrote: > Paul D. Anderson wrote: > > I was browsing the Python spec yesterday and came across this interesting > > and useful syntax: > > > > "/" (one slash) means floating point division, e.g. 5/2 = 2.5 even though 5 > > and 2 are integers > > > > "//" (two slashes) means integer (floor) division, e.g. 5.0//2.0 = 2.0 even > > though 5.0 and 2.0 are floats. > > > > I've always been a little troubled by the standard division operator being > > dependent on the types of the operands. (I understand the need for it, I > > just didn't like it much.) Now here is an elegant (IMHO) solution. > > I like the idea of adding a "floating point division", but I think it > should be a *new* feature while the current / and // are left as they > are. How about "./"? > > 5 / 2 = 2 // Current behavior > 5.0 / 2.0 = 2.5 // Current behavior > 5 ./ 2 = 2.5 // New behavior > 5.0 ./ 2.0 = 2.5 // It always floating-point divides > > IOW, ./ is short for "cast operands to double and divide". > > If ./ proves too hard to parse (I think it might require some > lookahead), then /^ might work.
To the extent that this was a serious proposal (that is, to a very, very small extent) I would rather reserve the ./ operator for element-wise array division, along with .*, etc., since I'm used to that in other languages. (And the whole point of proposing syntax is to make one's own self comfortable, right?) Paul
