Generatore (informatica)
# Generatore (informatica)

In informatica, un generatore è una speciale routine che può essere usata per il controllo del comportamento di un'iterazione in un loop. Un generatore è molto simile a una funzione che restituisce un vettore, nel quale un generatore ha i parametri, che possono essere chiamati, e genera una sequenza di valori.

Invece di costruire un vettore contenente tutti i valori e restituirli in una volta, un generatore fornisce i valori uno alla volta, il che richiede meno memoria e permette così al chiamante di iniziare a elaborare i primi valori immediatamente. In breve, un generatore assomiglia a una funzione ma si comporta come un iteratore.

I generatori possono essere implementati in costrutti di controllo di flusso più espressivi, come continuazione di oggetti di prima classe (first class object) o come co-funzioni.

I generatori appaiono per la prima volta nel 1975 nel CLU; ora sono disponibili in Python, C#, JavaScript, Ruby e altri linguaggi. In CLU e C#, i generatori vengono chiamati iteratori e in Ruby enumeratori.

## Python

Un esempio di generatore in Python:

## Ruby

Ruby supporta i generatori (a partire dalla versione 1.9) sotto forma di classe Enumeratore.

