fbpx
Wikipedia

Generador (informática)

En computació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.

En lugar de construir un vector que contenga todos los valores y devolverlos de una vez, un generador proporciona un valor a la vez, lo que requiere menos memoria y, 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.

Python

Un ejemplo de generador en Python:

def countfrom(n): while True: yield n n += 1 # Ejemplo: mostrar los enteros entre 10 y 20. # Hay que tener en cuenta que esta iteración normalmente termina, # aunque el countfrom() se escriba como un bucle infinito. for i in countfrom(10): if i <= 20: print(i) else: break # Otro generador, que produce los primeros números primos # a "to" si a> = 2, de lo contrario indefinidamente dependiendo de la necesidad. def primos (to):     yield 2 # primer número primero, y único par n = 3 p = [] while n <= to or to < 2: sqr_n = int(n**0.5) if not any(n%f == 0 for f in p if f <= sqr_n): # funciona desde Python 2.5 con el paquete NumPy que introduce any() yield n p.append(n) n += 2 # Sólo revisar impares raise StopIteration 

Ruby

Ruby soporta generadores (a partir de la versión 1.9) en la clase Enumerator.

# Generador de un objeto enumerable chars = Enumerator.new(['A', 'B', 'C', 'Z']) 4.times { puts chars.next } # Generatore de un bloque count = Enumerator.new do|yielder| i=0 loop{ yielder.yield i += 1} end 100.times { puts count.next } 

Véase también

  •   Datos: Q2565187

generador, informática, computación, generador, rutina, especial, puede, usar, para, controlar, comportamiento, iterador, bucle, generador, similar, función, devuelve, vector, generador, tiene, parámetros, pueden, llamar, genera, secuencia, valores, lugar, con. En computacion 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 funcion que devuelve un vector en el que un generador tiene los parametros que se pueden llamar y genera una secuencia de valores En lugar de construir un vector que contenga todos los valores y devolverlos de una vez un generador proporciona un valor a la vez lo que requiere menos memoria y por lo tanto permite que quien lo llama comience a procesar los primeros valores inmediatamente En resumen un generador se asemeja a una funcion pero se comporta como un iterador Los generadores pueden implementarse en construcciones de control de flujo mas expresivas como la continuacion de objetos de primera clase o como co funciones Los generadores aparecen por primera vez en 1975 en el lenguaje CLU y estan disponibles en Python C JavaScript Ruby y en otros idiomas En CLU y C los generadores se llaman iteradores y en Ruby enumeradores Python EditarUn ejemplo de generador en Python def countfrom n while True yield n n 1 Ejemplo mostrar los enteros entre 10 y 20 Hay que tener en cuenta que esta iteracion normalmente termina aunque el countfrom se escriba como un bucle infinito for i in countfrom 10 if i lt 20 print i else break Otro generador que produce los primeros numeros primos a to si a gt 2 de lo contrario indefinidamente dependiendo de la necesidad def primos to yield 2 primer numero primero y unico par n 3 p while n lt to or to lt 2 sqr n int n 0 5 if not any n f 0 for f in p if f lt sqr n funciona desde Python 2 5 con el paquete NumPy que introduce any yield n p append n n 2 Solo revisar impares raise StopIterationRuby EditarRuby soporta generadores a partir de la version 1 9 en la clase Enumerator Generador de un objeto enumerable chars Enumerator new A B C Z 4 times puts chars next Generatore de un bloque count Enumerator new do yielder i 0 loop yielder yield i 1 end 100 times puts count next Vease tambien EditarIterador Corrutinas Portal informatica Contenido relacionado con informatica Datos Q2565187 Obtenido de https es wikipedia org w index php title Generador informatica amp oldid 125887636, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos