7 - Theorie der Programmierung [ID:4898]
50 von 494 angezeigt

Dieser Audiobeitrag wird von der Universität Erlangen-Nürnberg präsentiert.

Ja, also heute.

Ja, ich weiß nicht inwieweit das Skript, das schon auf der Webseite steht,

nebenher gelesen wird. Da kann man also, ja der Nachteil von so einem Skript ist,

dass dann die launigen Ansagen vom letzten Mal wieder drinstehen. Das kann ich jetzt

also nicht wieder verwenden. Ich habe also anscheinend letztes Mal gesagt,

dass der Lambda-Kalkül also auf einer Stufe mit großen Erfindungen der Menschheit

bis hin zur Currywurst steht. Ja, gut. Auch wenn ich das jetzt also so in der Form

genau jetzt nicht wiederholen kann, der Lambda-Kalkül ist etwas sehr, sehr

fundamental ist. Auch nicht nur für die Informatik, sondern für die Logik und

das Denken und die Mathematik schlechthin, auch wenn die Mathematiker das

natürlich wieder noch nicht mitbekommen haben. So, dementsprechend ist da auch

schon ein durchaus älteres, gut abgehangenes Konzept.

Stammt also, ja jetzt, wenn wirklich jetzt ein Mathematikhistoriker kommt, der

erzählt mir wahrscheinlich, dass das eigentlich noch wieder ganz anders

einzuordnen ist. Aber sagen wir mal, wichtige Leute aus der Anfangszeit des

Lambda-Kalküls, vermutlich die Erfinder, sind Church und Kleeney. Church kennen

sie deswegen schon, weil ich ihn hier schon erwähnt habe. Diese bewusste

Church-Rosser-Eigenschaft, über die wir schon gesprochen haben, die wurde

ursprünglich mal für den Lambda-Kalkül bewiesen und erst später hat man gemerkt,

also das mit dem Termen ersetzen, was nämlich die Grundlage des Lambda-

kalküls ist, das kann man auch in allgemeinem Kontext noch anwenden. Und den

Kleeney kennen sie auch, das ist der mit dem Sternchen an den regulären

Ausdrücken der Kleeney-Stalk.

So, ja was ist der Lambda-Kalkül?

Also, erste Antwort, Lambda-Kalkül ist funktionales Programmieren. Fehlt noch

ein bisschen was, ich wurde eben schon gefragt, muss man hier PFP gehört

haben, um das zu verstehen? Nein, muss man nicht. Aber in der Tat nicht, also für

funktionale Programmierung ist der Lambda-Kalkül grundlegend.

Da habe ich ja schon mal behauptet, dass was wir hier machen, ist funktionales

Programmieren und da hatten wir den Lambda-Kalkül noch gar nicht.

Genauer gesagt also

ist das funktionales Programmieren mit höheren Funktionen. Was meine ich mit

einer höheren Funktion? Nun, zum Beispiel kann ich, wenn ich Haskell

programmiere, also ich bringe jetzt gewissermaßen gerade Haskell-

programmieren bei, da kann ich eine Funktion definieren, indem ich hier den

Funktionsnamen links hinschreibe, irgendwelche Argumente dahinter und dann

ein Gleichheitszeichen, dann sage ich halt, was diese Funktion ist. Zum Beispiel

kann sie das hier sein. Das ist jetzt mal eine nicht recursive

Definition.

Also twice von f und x ist einfach f zweimal angewendet auf x, das heißt die

Funktion, die nimmt hier ein Argument, das selber wieder eine Funktion ist und

verdoppelt dann praktisch diese Funktion. Können sie ausprobieren, wird in Haskell

gefressen. Und was gibt es noch?

So, wenn sie jemals was mit Listen gemacht haben, ob nur in Haskell oder

nicht, dann haben sie sicher mal eine Map-Funktion verwendet, die kann ich im

Prinzip sogar in C hinschreiben, wenn ich will. Eine Map-Funktion ist eine, die

nimmt sich als Argument eben eine Funktion auf den Typen der Einträge und

macht daraus eine Funktion zwischen den entsprechenden Listen-Typen, indem sie

die gegebenen Funktionen auf jedes Listen-Element anwendet. Das heißt, ich

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:20:50 Min

Aufnahmedatum

2015-05-04

Hochgeladen am

2015-05-04 20:21:43

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen