Ho capito 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) avevano già applicato tecniche come il curry, ma che era prima che fosse disponibile in qualsiasi linguaggio di programmazione.
Lo schema, secondo Wikipedia , è stata la prima lingua a introdurre funzioni di ordine superiore adeguate come cittadini di prima classe, ma c'è qualcuno a cui possiamo attribuire l'idea originale? Forse Alonzo Church, che ha inventato il calcolo lambda negli anni '30? Più specificamente, chi ha coniato la seguente definizione, che ho visto in varie parafrasi in giro in diversi libri e risorse online?
Una funzione è considerata di ordine superiore quando accetta un'altra funzione come argomento o quando restituisce una funzione. Qualsiasi funzione che non accetta funzioni come argomenti o come tipi restituiti è chiamata funzione del primo ordine.