title: Generador (informática)
text: # Generador (informática)
  
  En programación, un generador es una rutina especial que se puede usar para controlar el comportamiento de un iterador en un bucle. Un generador es muy similar a una función que devuelve un vector, en el que un generador tiene los parámetros que se pueden llamar, y genera una secuencia de valores.
  La manera más simple de conseguir una secuencia de datos es declarando un array o vector declarando manualmente cada valor. Esta práctica puede volverse tediosa y consumir mucho tiempo al desarrollador si el array o vector requiere que existan una gran cantidad de elementos dentro de él. En ese caso un generador resulta ser una manera más rápida de declarar el array o vector.
  Otra gran ventaja de los generadores radica en que consume una menor cantidad de recursos en memoria, por lo tanto, permite que quien lo llama comience a procesar los primeros valores inmediatamente. En resumen, un generador se asemeja a una función pero se comporta como un iterador.
  Los generadores pueden implementarse en construcciones de control de flujo más expresivas, como la continuación de objetos de primera clase o como co-funciones.
  Los generadores aparecen por primera vez en 1975 en el lenguaje CLU; y están disponibles en Python, C#, JavaScript, [Ruby] y en otros idiomas. En CLU y C#, los generadores se llaman iteradores y en Ruby enumeradores.
  
  # Generador (informática)
  ## Python
  
  Un ejemplo de generador en Python:
  
  # Generador (informática)
  ## Ruby
  
  Ruby soporta generadores (a partir de la versión 1.9) en la clase Enumerator.