Chi ha coniato per la prima volta il termine Funzione di ordine superiore e / o Cittadino di prima classe?

9

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.

    
posta Abel 05.02.2013 - 23:52
fonte

2 risposte

9

Frege dice in "Funktion und Begriff" (1891):

Wie nun Funktionen von Gegenständen grundverschieden sind, so sind auch Funktionen, deren Argumente Funktionen sind und sein müssen, grundverschieden von Funktionen, deren Argumente Gegenstände sind und nichts anderes sein können. Diese nenne ich Funktionen erster, jene Funktionen zweiter Stufe.

In inglese (traduzione):

Le cose e le funzioni sono diverse, così come le funzioni, i cui argomenti sono funzioni radicalmente diverse dalle funzioni i cui argomenti devono essere le cose. Chiamo le ultime funzioni del primo ordine, le precedenti funzioni del secondo ordine.

    
risposta data 06.02.2013 - 00:32
fonte
3

L'articolo di wikipedia attribuisce già la terminologia "cittadini di prima classe" a Strachey.

"Funzione di ordine superiore" Immagino risalga alla distinzione tra ordine superiore e logica del primo ordine.

Vedi link e link

    
risposta data 06.02.2013 - 00:01
fonte