s n h m r u
i

Fachkonzept: Listenfunktion map und anonyme Funktionen

Die Listenfunktion map

Mit der Funktion map können wir eine Funktion auf jedes Element einer Liste anwenden. map bekommt eine Funktion und eine Liste übergeben. Die übergebene Funktion wird anschließend auf jedes Listenelement angewandt. Die neu entstandenen Elemente werden zu einer neuen Liste zusammengefügt und zurückgegeben.

Ein map-Ausdrucks in Racket besteht aus:

  1. Dem Operator map
  2. Einer Funktion als ersten Operanden
  3. Einer Liste als zweiten Operanden.
(map funktion liste)
Da die übergebene Funktion auf alle Elemente der übergebenen Liste angewendet wird, gilt die folgende Einschränkung:
Wenn die Liste Elemente vom Typ %a beinhaltet, muss die Funktion von der Signatur %a -> %b sein.

Für die Funktion map ergibt sich somit die Signatur ((%a -> %b) (list-of %a) -> (list-of %b)).

Beispiele:

Der Ausdruck

(map ceiling (list 4.5 3.14 7 -8 -12.7 0.3))
entspricht: ((real -> integer) (list-of real) -> (list-of integer))

Der Ausdruck

(map string-length (list "Informatik" "Racket" "Funktion"))
entspricht: ((string -> natural) (list-of string) -> (list-of natural))

Anonyme Funktionen Listenfunktion map

Anstelle der Nutzung von vordefinierten Funktionen, welche wir über ihren Funktionsnamen verwenden können, können wir auch die Funktionslogik direkt als lambda-Ausdruck übergeben.
Eine anonyme Funktion ist eine Funktion, für die kein Name definiert worden ist.
In Racket entspricht dies dem lambda-Ausdruck einer Funktionsdefinition.
Die Nutzung einer anonymen Funkion kann überall dort erfolgen, wo eine Funktion genutzt wird.

Beispiele innerhalb eines map-Ausdrucks:

(map (lambda (x) (* x 2)) (list 2 4 8 16 32))
(map (lambda (name) (string-append "Hallo " name)) (list "Rajana" "Franka" "Danijela" "Milanka"))


Suche

v
100.137.3.3.1.4 Fachkonzept: Listenfunktion map und anonyme Funktionen
Kopieren durch Anklicken

Rückmeldung geben