HaL-10 | Programm | Anmeldung | Ort und Anreise | Beitrags-Aufruf
Man muss keine Monaden kennen, um Haskell zu programmieren, denn es ist nur eine Abstraktionsschicht, also ein Muster, mit dem man seine Programme strukturiert. Als solches aber ein sehr erfolgreiches, und mit der richtigen Monade werden komplizierte Programmieraufgaben plötzlich einfach, übersichtlich und weniger fehlerträchtig.
Eine oft übersehene Variante der Monade wird durch die MonadFix-Typklasse beschrieben: Monaden, in denen sich Fixpunkte berechnen kann. Damit kann man, in gewisser Weise, Werte benutzen, die erst später berechnet werden.
In einer Live-Coding-Sitzung zeigt Joachim Breitner, wie er dank einer selbstgestrickten Monaden die Ausgabe eines Binär-Datenformates „schön“ implementiert, wie er dem mit MonadFix den letzten Schliff gibt, und warum das eigentlich überhaupt funktionieren kann.Konstruktive Mathematikerinnen und Mathematiker verzichten auf das Gesetz vom ausgeschlossenen Dritten, welches in etwa besagt, dass für jede Behauptung P entweder P oder die Negation von P wahr ist. Aus dem Verzicht auf dieses sonst grundlegende Axiom erwachsen einige Vorteile, wie dass man aus konstruktiven Beweisen von Existenzaussagen entsprechende Algorithmen extrahieren und man rigoros mit nichtstandard “Traumaxiomen”, die in klassischer Mathematik schlicht falsch sind, umgehen kann.
Um sich mit klassischen Mathematikerinnen und Mathematikern unterhalten zu können, können ihre konstruktiven Kolleginnen und Kollegen die Doppelnegationsübersetzung verwenden. Diese hat die fundamentale Eigenschaft, dass die Übersetzung einer Behauptung genau dann konstruktiv gilt, wenn die ursprüngliche Behauptung klassisch gilt.
Nun gibt es eine faszinierende Verbindung zwischen der
Doppelnegationsübersetzung und der in der Informatik wohlbekannten Continuation-Passing-Style-Transformation: In einem gewissen Sinn sind sie ein und dasselbe. Das ist ein wunderschöner Aspekt des “computational trinitarianism”.
Die Firma Metrix Financial Reporting Solutions entwickelt Software, welche BaFin-regulierten Unternehmen dabei hilft, nach Spezifikation des Supervisory Reportings der European Banking Authority (EBA) aufsichtsrechliche XBRL-Meldungen zu erstellen.
Moritz Drexl spricht darueber, wie Haskell dabei geholfen hat, in kurzer Zeit ein Produkt zu entwickeln, welches auf robuste Art und Weise mit den komplexen Spezifikationen der EBA umgehen kann. Weiterer Schwerpunkt des Vortrags sind die Herausforderungen, eine in Haskell geschriebene Desktop-Anwendung unter Windows anzubieten, und wie diese gelöst wurden.
Nach einer Einführung in XBRL-basierte Meldungen und Vorstellung der wichtigsten Features der Software wird erklaert, wie die Kombination von Haskell und PureScript es ermöglicht, komplexe Desktop-Anwendungen zu entwickeln. Danach wird vorgestellt, welche Rolle die wichtigsten Bibliotheken in der Entwicklung gespielt haben und ein Fazit über die Nutzung von Haskell gezogen.Wer braucht schon Typklassen? Oder überhaupt ein statisches Typsystem? Warum müssen Nebenwirkungen immer so kompliziert sein? Und was sind eigentlich Monaden? Da muss es doch etwas besseres geben!
dg ist Python mit Haskell-Syntax. In einem kurzen Vortrag (15 Minuten) möchte ich mit einem Augenzwinkern das “bessere Haskell” vorstellen.9:15 (Raum Gu 113) Janis Voigtländer (U Bonn). Einführung in Funktional-Reaktives Programmieren mit Elm pdf wichtige Informationen zur Vorbereitung auf dieses Tutorium
9:15 (Raum Gu 114) Henning Thielemann (Halle). Typtricks - einfach aber effektiv (Zusammenfassung, Folien)
9:15 (Raum Gu 112) Marcellus Siegburg und Johannes Waldmann (HTWK Leipzig). Struktur und Details einer großen Haskell-Web-Anwendung (autotool) pdf wichtige Informationen zur Vorbereitung auf dieses Tutorium
Haskell hat ein außergewöhnlich mächtiges Typsystem. Es hat eine komfortable Balance zwischen praktischer Anwendbarkeit und Ausdrücksstärke. Dennoch liegen einige Sachen noch außerhalb seiner Möglichkeiten, ein Beispiel davon sind voll value-dependent Typen. Liquid Haskell ist eine Erweiterung des Typsystems in diese Richtung, indem Ideen aus der Verification von imperativen Programmen und die Fähigkeiten von SMT Solvern integriert werden.
Mit dieser neuen Kraft kann LH Typen über Datenstrukturen entscheiden, welche sich mit denen von dependent Typsystemen vergleichen lassen. Darüber hinaus hält LH die Menge an zusätzlichen Annotationen minimal. Dieser Vortrag behandelt die Ideen hinter LH, wie es funktioniert und wie man es anwendet, um Korrektheit in real-world Situationen zu beweisen.
Zielgruppe: Der Vortrag setzt nur grundlegende Kenntnisse mit Haskell-98 Typen voraus. Erfahrungen mit Typinferenz und Typchecking sind ebenfalls hilfreich.HaL-10, 4. und 5. Dezember 2015 | F-IMN, HTWK Leipzig | Impressum