Funktionale Programmierung Fakultt fr Informatik LS XIV Software


















- Slides: 18
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 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 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. • 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 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 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 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 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 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. • 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 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 nachträglich geladen werden.
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“ ausgegeben werden.
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. . . 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 Matching
Funktionale Programmierung GHCi - Einführung • Mittels eines multi-line command block („: {. . . : }“) kann man Funktionen auch übersichtlich per Pattern Matching definieren.