
On 1/26/06, Conor McBride
We'd do daft stuff like
(200 * _ ^ 2) unitsquare
Yes, I played with a concept like that at one point, and came to the conclusion that it was better done with lambdas. I am all specifically about function application, not arbitrary expressions. [...]
Giving parentheses this murky binding power interferes with their innocence.
The parentheses won't bind, they'll only delimit the expression that will be subject to re-interpretation, and then simply in a by-the-way manner, very much like in the operator sections case. They'll still be innocent in the absense of relevant syntax :)
If you do want to pull a stunt like this, you need some other funny brackets which specifically indicate this binding power, and then you can do grouping inside them, to create larger linear abstractions. You could have something like
(| f (_ * 3) _ |)
We already have lambdas for this, and they're shorter, clearer, and more powerful.
But in my wild and foolish adulthood, I'm not sure it's worth spending a kind of bracket on.
Definitely not. But an underscore can still be spent on the much simpler case :)
All the best
Conor
Cheers, Dinko