On 12/16/13 5:02 PM, Chris Cain wrote:
On Monday, 16 December 2013 at 20:38:52 UTC, Andrei Alexandrescu wrote:bool between(T, U1, U2)(T v, U1 lo, U2 hi) { return v >= lo && v <= hi; }I realize this is, at this point, being retracted. But it would open up some interesting ideas. It seems a lot like iota, but it could look pretty cool for some purposes. Consider an alternative API where you could do things like this: --- if(x in between(2, 7)) { //... } ---
That's problematic. "Between" is a preposition. Naming a function as a preposition is fine as long as a verb is implied (e.g. "a in b" really means "a _is_ in b", or "a.between(b, c)" really means "a _is_ between b and c" etc).
Reifying "between" to the status of object is weird. One constructs a "between" object and then what are its primitives? How can one even talk about it? "Yeah I have a between here and I copy it to another between"...
"x in between(2, 7)" is cute but just that - it's a lucky strike that relies on word ordering in a particular phrase and is unlikely to work in many other places.
Andrei
