Sono giunto alla conclusione che molto prima di Haskell, O'Caml o LISP, le funzioni di ordine superiore erano una materia di ricerca accademica e in matematica, Schönfinkel (nel 1967) e Haskell Curry (nel 1968) applicavano già tecniche come il currying , ma era prima che fosse disponibile in qualsiasi linguaggio di programmazione.
Scheme, secondo Wikipedia , è stata la prima lingua a introdurre funzioni di ordine superiore corrette come di prima classe cittadini, ma c'è qualcuno a cui possiamo attribuire l'idea originale? Forse Alonzo Church, che ha inventato il lambda calcolo negli anni '30? Più in particolare, chi ha coniato la seguente definizione, che ho visto in varie parafrasi in diversi libri e risorse online?
A function is considered to be of higher order when it takes another function as an argument or when it returns a function. Any function not taking functions as arguments or as return types is called a first order function.