Hacker News new | ask | show | jobs
by dragonwriter 86 days ago
A case for currying:

In languages in which every function is unary but there is a convenience syntax for writing "multiargument" functions that produces curried functions, so that the type functions of type "a -> b -> c" can be written as if their type was "a b -> c", but which also have tuples such that "multiargument" functions could equally conveniently be written as having type "(a, b) -> c", and where the syntax for calling each type of function is equally straightforward in situations that don't require "partial application" (where the curried form has a natural added utility), people overwhelming use the syntax that produces curried functions.

People only predominantly use uncurried multiargument functions in languages which make writing and/or calling curried functions significant syntactic overhead.