Not so. Depends on the language. In Haskell, for example, you may well
(,) 42 -- a -> (Int, a)
constructing a function that takes one argument and constructs a tuple.
So, tuple construction is itself curryied and an application like
f (42, 43)
f ((,) 42 43)
Closure construction should be a more primitive operation than tuple
construction in most languages, since the latter may include the
former, see above.
This looks like a not very well founded statement to me.
This statement is self defying, IMHO. If we have a language that can
call "uncurried" functions somehow faster, what then would the compiler
prevent to generate an uncurried call when it sees one?
The closure can be opimized away at the call site, the tuple
deconstruction cannot. I admit, however, that this costs 2 indirect