![]() |
||
| funktionale Programmierung |
Material
Motivation
Grundlagen
Rekursion
Listen
Funktionen höherer Ordnung
list comprehension
lazy evaluation
Haskell
Endrekursion
Beispiele
|
|
|
Generator |
Sehr verwandt zu list comprehensions sind Generatoren. Syntaktisch unterscheiden sie sich von list comprehensions nur durch runde statt eckige Klammern.

Python-Generatoren kann man sich als 'virtuelle' Listen vorstellen, die auf Aufforderung (z.B. next) die Elemente real herausgeben können. Das aber nur einmal. Generatoren belegen unter Umständen dramatisch weniger Speicher als Listen. Generatoren beschreiben Listen, ohne sie wirklich aufzubauen, und sie merken sich, wo man in der 'Liste' steht.
def genP():
yield 'P'
yield 'y'
yield 't'
yield 'h'
yield 'o'
yield 'n'
def genN():
i = 1
while True:
yield i
i = i + 1
def genFib():
a, b = 0, 1
while True:
yield b
a, b = b, a+b
