funktionale Programmierung Material Motivation Grundlagen Rekursion Listen Funktionen höherer Ordnung list comprehension Generator lazy evaluation Haskell Endrekursion Beispiele
Pfad: Startseite / Fächer / Informatik / funktionale Programmierung / Listen
Autor: mk
16.12.2010 15:50:15
629
Listen

Kopf-Rest-Methode

def double(liste):
    if liste == []:
       return []
    else:
        return [liste[0]*2] + double(liste[1:])

Rekursionslimit

>>> import sys
>>> sys.getrecursionlimit()
1000
>>> sys.setrecursionlimit(10000)
>>> sys.getrecursionlimit()
10000
>>> 

Aufgaben

  1. Schreibe eine Funktion quadrat(liste), die eine Liste zurückgibt, die die Elemente von listequadriert enthält. Schreibe eine rekursive und eine iterative Version. Teste deine Funktionen und vergleiche sie auch durch Messungen.
  2. reverse(liste)
  3. length(liste)
  4. Schreibe eine Funktion zip (Reißverschluss), die die Elemente zweier Listen soweit möglich zu Paaren zusammenfasst.
    Beispiel: zip(['a','b','c'], [1,2,3,4]) --> [('a',1),('b',2),('c',3)]
  5. pairs([1,2,3,4]) --> [(1,2),(2,3),(3,4)]
  6. sorted([1,2,4,3]) --> False, sorted([1,2,3,4]) --> True

Links