
AMDG On 08/26/2011 02:51 PM, Larry Evans wrote:
On 08/26/11 15:24, Dave Abrahams wrote:
No, sorry, but that's just silly. Array indexing is entirely consistent:
f[0] => returns int(&)[1][1] f[0][0] => returns int(&)[1] f[0][0][0] => returns int&
Then so is (using haskell notation):
f :: X -> Y -> Z -> int
f x => returns Y -> Z -> int f x y => returns Z -> int f x y z => returns int
which is Eric's point. IOW, when supplied with enough arguments, the function returns the result_type of the function, just as, when a multi-dimensional array is supplied enough arguments (or indices) it returns the value type of the array.
That's just how functions that take multiple arguments work in Haskell. It isn't how C++ works. Trying to create the same behavior in a language that supports multi-argument functions directly seems like it would cause more confusion than good. In Christ, Steven Watanabe