is considered as a function of one argument which returns
another function of N-1 arguments. E.g. in
Haskell we can
define:
average :: Int -@# (Int -@# Int)
average, to one Int, e.g. (average 4), returns a function of
type (Int -@# Int) which averages its argument with 4. In
uncurried languages a function must always be applied to all
x -@# average(4,x)
functional sub-expressions.
propose it and it was first referred to in ["Uber die
Bausteine der mathematischen Logik", M. Schoenfinkel,
Mathematische Annalen. Vol 92 (1924)].
lecture notes on programming languages written circa 1967.
Strachey also remarked that it ought really to be called
"Schoenfinkeling".
Germany trying to introduce "scho"nen" for currying and
"finkeln" for "uncurrying". The verb "scho"nen" means "to
beautify"; "finkeln" isn't a German word, but it suggests "to
fiddle".
["Some philosophical aspects of combinatory logic",
H. B. Curry, The Kleene Symposium, Eds. J. Barwise,
J. Keisler, K. Kunen, North Holland, 1980, pp. 85-101]
(2002-07-24)