Origine dei nomi di funzioni di elaborazione elenchi comuni

10

Alcune funzioni di ordine superiore per operare su liste o array sono state ripetutamente adottate o reinventate. Le funzioni mappa , volte [ l | r ] e filtro sono state trovate insieme in diversi linguaggi di programmazione, come Scheme, ML e Python, che non sembrano avere un antenato comune. Vado con questi tre nomi per mantenere focalizzata la domanda.

Per mostrare che i nomi non sono universali, ecco un campionamento di nomi per funzionalità equivalenti in altre lingue. C ++ ha trasforma invece di mappa e remove_if invece di filtro (invertire il significato del predicato). Lisp ha mapcar invece di map , remove-if-not invece di filter e reduce invece di piega (alcune varianti Lisp moderne hanno map ma questo sembra essere un forma derivata .) C # utilizza Seleziona invece di mappa e Dove al posto di filtro . I nomi di C # provenivano da SQL tramite LINQ , e nonostante il nome modifiche, la loro funzionalità è stata influenzata da Haskell, che è stato a sua volta influenzato da ML.

I nomi map , fold e filter sono diffusi, ma non universali. Questo suggerisce che sono stati presi in prestito da una fonte influente in altre lingue contemporanee. Da dove vengono questi nomi di funzioni?

    
posta Heatsink 02.07.2013 - 00:36
fonte

1 risposta

3

L'unica parola universale nel tuo elenco è map e appare già in il documento originale su Lisp nel 1960 (sotto l'aspetto di maplist ). La carta ha anche search (AKA filter , AKA remove-if-not ).

Penso che il motivo map sopportato mentre gli altri hanno varianti è che map viene da relativamente antico, consolidato, comune & matematica elementare mentre catamorphism (AKA reduce AKA fold & c) è un relativamente concetto avanzato, da un relativamente oscuro sviluppato di recente (più o meno simultaneamente con CS) dominio , ed è stato introdotto (alla fine degli anni '80) quando reduce era disponibile in Lisp per su un decennio .

Gli altri ( filter AKA remove-if-not ) sono ancora più ad hoc in CS / programmazione, quindi le persone si sentono ancora più a loro agio nel scegliere il proprio nome per loro.

    
risposta data 15.08.2013 - 16:58
fonte

Leggi altre domande sui tag