"I generatori sono derivati di funzione"

1

Sto leggendo questo articolo su una nuova funzionalità di ECMAscript 6, generatori, che stanno atterrando nell'interprete JavaScript V8. Non troppo lontano dalla cima, l'autore suggerisce un'analogia:

generators are like functions, with their bodies taken to the first derivative. Calling next integrates between two yield points.

Mi piace molto questa analogia. Questa analogia è già stata discussa in letteratura? Ce ne sono di simili? Si inserisce in un quadro più ampio di analogie? (Ho fatto un rapido ricerca Google ma non è stato utile.

    
posta Randomblue 08.05.2013 - 23:25
fonte

1 risposta

4

Penso che questa analogia sia più simile a una metafora, usata scherzosamente dall'autore per farti pensare concettualmente a cos'è un generatore.

Rivediamo quali iteratori e generatori sono in realtà in Javascript:

An Iterator is an object that knows how to access items from a collection one at a time, while keeping track of its current position within that sequence. In JavaScript an iterator is an object that provides a next() method which returns the next item in the sequence. This method can optionally raise a StopIteration exception when the sequence is exhausted.

Generators provide a powerful alternative: they allow you to define an iterative algorithm by writing a single function which can maintain its own state, and then returning individual values based on that persistent state using the yield keyword.

In breve, un iteratore è una funzione che restituisce uno di una serie di punti dati ogni volta che viene chiamato, e un generatore è solo un po 'di zucchero sintattico che ti permette di creare tale funzione con la sintassi e la facilità d'uso di un metodo ordinario.

I punti dati restituiti singolarmente da un metodo iteratore possono provenire da una matrice o da una raccolta oppure possono essere generati dal codice. Un generatore pseudo-casuale può essere pensato come un iteratore, dal momento che dargli lo stesso seme di inizializzazione restituirà la stessa sequenza di valori.

Quindi cos'è un derivato? In poche parole, è una funzione che, in un dato punto di una curva, restituisce la pendenza di una linea tangente alla curva in quel punto. Sembra qualcosa del tipo :

Beh,sembrauniteratore,vero?Ilgraficomostrafondamentalmenteunafunzionecheaccettapiùposizionisuccessivesuunacurvaerestituiscelapendenzadellalineainognipuntodellacurva,unvaloreallavolta.

L'unicoproblemaconquestaanalogiaècheuniteratorenondeverestituirevaloriderivati;puòrestituirequalsiasicosa.Ivaloriderivatisonosolounmodoconvenientepercostringertiapensareallanaturadegliiteratori.

Un'analogiamigliorepotrebbeessereundistributorePez.

    
risposta data 09.05.2013 - 02:01
fonte

Leggi altre domande sui tag