Funktionale Programmierung Fakultt fr Informatik LS XIV Software

  • Slides: 18
Download presentation
Funktionale Programmierung Fakultät für Informatik LS XIV Software Engineering Funktionale Programmierung Sommersemester 2021 Prof.

Funktionale Programmierung Fakultät für Informatik LS XIV Software Engineering Funktionale Programmierung Sommersemester 2021 Prof. Dr. Jakob Rehof TU Dortmund LS XIV Software Engineering

Funktionale Programmierung Diese Vorlesung: „Fu. Pro“ und Haskell • Organisatorisches, Rahmenbedingungen • Konzept und

Funktionale Programmierung Diese Vorlesung: „Fu. Pro“ und Haskell • Organisatorisches, Rahmenbedingungen • Konzept und Inhalt der Veranstaltung • Motivation und Hintergrund zur funktionalen Programmierung erfolgen im laufenden Betrieb in diesen Folien („Fu. Pro_2021_VLn“) • „Doberkat. FP“: Folien 1 -29

Funktionale Programmierung Haskell installieren • Unter https: //www. haskell. org/platform/ sind die Installationsschritte für

Funktionale Programmierung Haskell installieren • Unter https: //www. haskell. org/platform/ sind die Installationsschritte für alle gängigen Betriebssysteme beschrieben. • Wir empfehlen die gesamte Haskell-Plattform zu installieren. In den ersten Wochen wird jedoch der Glasgow Haskell Compiler (GHC) samt Interpreter (ghci) ausreichend sein. • Sollte etwas nicht funktionieren helfen wir euch in der Übung!

Funktionale Programmierung Übungsabgaben • Die Übung wird die Vorlesung mit praktischen Aufgaben begleiten. •

Funktionale Programmierung Übungsabgaben • Die Übung wird die Vorlesung mit praktischen Aufgaben begleiten. • Zum Erreichen der Studienleistung sind jeweils 50% der Punkte auf den Übungsblättern in 3 Abgabeblöcken zu schaffen. • Die Übungsblätter werden so gestaltet werden, dass ihr die Aufgaben selbstständig programmieren sollt und dann einfach die. hs-Datei im ASSESS rechtzeitig abgeben könnt. • Die Übungsblätter werden Freitags nach der Vorlesung auf der Vorlesungsseite https: //ls 14 -www. cs. tudortmund. de/cms/de/Lehrveranstaltungen/2021 SS/Fu nktionale-Programmierung/index. html veröffentlicht.

Funktionale Programmierung Klausur- und Übungstermine • Die Klausuren werden voraussichtlich – in der 30

Funktionale Programmierung Klausur- und Übungstermine • Die Klausuren werden voraussichtlich – in der 30 KW (26. 7. -31. 7) und – in der 36 KW (6. 9. -11. 9. ) stattfinden. Sobald die Termine feststehen, werden wir auf der Vorlesungsseite darüber informieren. • Die Übungen finden ab nächster Woche – Dienstags 14 -15 h & 15 -16 h – Mittwochs 14 -15 h & 16 -17 h – Donnerstags 12 -13 h & 16 -17 h statt.

Funktionale Programmierung Übungsanmeldung • Die Anmeldung wird heute (16. 04. 21) um 12 h

Funktionale Programmierung Übungsanmeldung • Die Anmeldung wird heute (16. 04. 21) um 12 h im ASSESS freigeschaltet. • Die Anmeldung endet am Montag, den 19. 04. 21, um 18: 00 h • Sollte es Probleme bei der Anmeldung oder Übungsabgabe über das ASSESS-System geben, wendet euch bitte per Mail an felix. laarmann@tu-dortmund. de • Die Übungen finden im Big. Blue. Button unter folgendem Link statt: http: //lostsoul. cs. tu-dortmund. de/b/fel-0 y 8 -cpp-ljx

Funktionale Programmierung Literatur • Die Vorlesung wird sich in großen Teilen am Buch von

Funktionale Programmierung Literatur • Die Vorlesung wird sich in großen Teilen am Buch von Prof. Doberkat orientieren. • Dieses ist für Studenten kostenlos über die Universitätsbibliothek als ebook verfügbar und ausleihbar: https: //katalog. ub. tudortmund. de/id/ir 01388 a: ubd. lobid: HT 020783866 • Unter https: //www. haskell. org findet man weitere nützliche Ressourcen. Folgende Bücher waren in den letzten Jahren bei Studenten beliebt: – http: //learnyouahaskell. com – http: //book. realworldhaskell. org

Funktionale Programmierung Fu. Pro an der TU Dortmund • Die Veranstaltung „Funktionale Programmierung“ wurde

Funktionale Programmierung Fu. Pro an der TU Dortmund • Die Veranstaltung „Funktionale Programmierung“ wurde die letzten Jahre von Prof. Padawitz gehalten und geprägt. • Seine Vorlesungs-Materialien stehen nach wie vor unter https: //fldit-www. cs. uni-dortmund. de/fpba. html zur Verfügung. • Auch wenn sich diese Veranstaltung am Buch von Prof. Doberkat und seinen Folien aus dem WS 12/13 orientiert, empfehlen wir dem geneigten Leser das Folienskript von Prof. Padawitz.

Funktionale Programmierung GHCi - Einführung • Der Glasgow Haskell Compiler (kurz GHC) kommt mit

Funktionale Programmierung GHCi - Einführung • Der Glasgow Haskell Compiler (kurz GHC) kommt mit einer interaktiven Entwicklungsumgebung (GHCi), – die mittels einer REPL interaktiv Haskell-Ausdrücke evaluieren kann; – die Haskell Programme interpretieren kann und – die vom GHC kompilierte Module laden kann. • Die REPL wird mittels des Kommandos „ghci“ gestartet.

Funktionale Programmierung GHCi - Einführung • Die REPL kann mittels „: q“ geschlossen werden.

Funktionale Programmierung GHCi - Einführung • Die REPL kann mittels „: q“ geschlossen werden. • Mittels „: ? “ könnt ihr euch alle verfügbaren REPL Kommandos anzeigen lassen.

Funktionale Programmierung GHCi - Einführung • Alternativ könnt ihr auch direkt ein Haskell Modul

Funktionale Programmierung GHCi - Einführung • Alternativ könnt ihr auch direkt ein Haskell Modul in die REPL laden, um bereits programmierte Funktionen zu nutzen/testen. • Ein geladenes Haskell Modul könnt ihr auch parallel in eurem Editor bearbeiten und nachdem ihr es gespeichert habt, mittels „: r“ erneut laden ohne die REPL zu beenden.

Funktionale Programmierung GHCi - Einführung • Mittels „: l“ kann ein Haskell Modul auch

Funktionale Programmierung GHCi - Einführung • Mittels „: l“ kann ein Haskell Modul auch nachträglich geladen werden.

Funktionale Programmierung GHCi - Einführung • In der REPL können Haskell Ausdrücke (z. B.

Funktionale Programmierung GHCi - Einführung • In der REPL können Haskell Ausdrücke (z. B. einfache arithmetische Ausdrücke) evaluiert werden.

Funktionale Programmierung GHCi - Einführung • Der Typ eines Ausdrucks kann mittels „: t“

Funktionale Programmierung GHCi - Einführung • Der Typ eines Ausdrucks kann mittels „: t“ ausgegeben werden.

Funktionale Programmierung GHCi - Einführung • Informationen zu einem Typen erhält man mittels „:

Funktionale Programmierung GHCi - Einführung • Informationen zu einem Typen erhält man mittels „: i“.

Funktionale Programmierung GHCi - Einführung • Variablen und Funktionen können mittels Haskells „let. .

Funktionale Programmierung GHCi - Einführung • Variablen und Funktionen können mittels Haskells „let. . . in. . . “ Konstrukt definiert werden, • oder seit GHC 8. 0. 1 auch ohne „let“ Konstrukt.

Funktionale Programmierung • Funktionen können als Lambda- Ausdruck definiert werden. • Oder mittels Pattern

Funktionale Programmierung • Funktionen können als Lambda- Ausdruck definiert werden. • Oder mittels Pattern Matching

Funktionale Programmierung GHCi - Einführung • Mittels eines multi-line command block („: {. .

Funktionale Programmierung GHCi - Einführung • Mittels eines multi-line command block („: {. . . : }“) kann man Funktionen auch übersichtlich per Pattern Matching definieren.