Processing math: 100%

In this section

Funktionen als Argumente – Analogie zur Summenformel der MathematikNutzung anonymer Funktionen (Lambda-Ausdrücke)

Funktionen höherer Ordnung
Einführung in die Programmierung

[Expand all][Collapse all]

Erweiterung der funktionalen Abstraktion

Historie:

  • Infinitesimal-Rechnung (17. Jhdt. Newton, Leibniz) - Funktionen mit Funktionen als Argument
  • 1941 Anlonzo Church: Lambda-Kalkül - Daten sind Funktionen
  • 1960 John McCarthy: Lisp - Funktionen sind Daten
  • 2014 Lambda-Ausdrücke im „Mainstream” (Java) angekommen
  • Google, Facebook, Twitter, Netflix - alle stützen sich auf funktionale Programmierung

Funktionen als Argumente – Analogie zur Summenformel der Mathematik

bi=af(i)=f(a)++f(b)

entspricht

[copy]
(define sum
  (lambda [f a next b]
    (if (> a b)
      0
      (+ (f a)
         (sum f (next a) next b)))))

Anwendungsbeispiele:

5x=1x3

entspricht
(define cube (lambda [x] (* x x x)))
(sum cube 1 add1 5)

10i=1i

entspricht
(sum identity 1 add1 10)

Weitere Beispiele: Integrale

Nutzung anonymer Funktionen (Lambda-Ausdrücke)

  • Lambda-Ausdrücke bereits eingeführt im Abschnitt Funktionale Abstraktion
  • Beispiele aus dem vorigen Abschnitt:
    (sum (λ [x] (* x x x)) 1 (λ [i] (+ i 1)) 5)
    oder
    (sum (λ [x] x) 1 (λ [i] (+ i 1)) 10)

Autor: Johannes Brauer

Created: 2020-02-21 Fri 22:27

Validate

^ Back to Top
Next Actions (0):
Done Actions (0):
Dashboard
Contexts (0):