Das wird heiß

Makarius

Das Treffen für Haskellistas, Scalafisten, Lambdroiden und andere funktionale, kohlenstoffbasierte Lebensformen in Augsburg!

Der Curry Club soll Treffpunkt sein, um Konzepte und Ansätze, Praktisches und Abstraktes, Purität und Effekte, Faulheit und Striktheit, Monaden und Monoide und sonst auch wirklich alles passende zu diskutieren.

Die Idee, einen funktionalen Stammtisch zu gründen, kam auf der ersten Augsburger Nerdnacht auf.

Wir treffen uns im vierwöchigen Turnus, das nächste Mal am

Donnerstag, den 23.02.2017, 19:00 Uhr MEZ.

In einem Wiki sammeln wir Themenvorschläge.

Programm für das dreiundzwanzigste Treffen am 23. Februar 2017

Tim wird die experimentelle Programmiersprache Frank (Paper, Implementierung) vorstellen. In Frank gibt es Werte und Berechnungen. Jede Berechnung ist dabei getaggt mit den Effekten, die sie ausführen möchte. Berechnungen können an Funktionen übergeben werden. Beim Aufruf einer Berechnung müssen entweder Handler für ihre benötigten Effekte angegeben werden oder diese Effekte werden im Typsystem weiter nach außen propagiert (damit müssen sie weiter außen gehandhabt werden).

Vorteile von Frank sind:

  • Es ist sehr einfach und natürlich, Code mit Nebeneffekten so abstrakt zu schreiben, dass man ihn in verschiedenen Kontexten verwenden kann und auch gut testen kann.
  • Man kann rein funktionalen und effektbehafteten Code sehr gut kombinieren: In Haskell ruft man ja rein funktionalen Code aus IO-Actions auf, aber man kann nicht andersrum eine IO-Action in rein funktionalem Code verwenden. Dies führt dazu, dass viele Funktionen in einer rein funktionalen und in einer IO/monadischen Variante existieren, wie z.B. map und mapM (beide wenden eine Funktion auf jedes Element einer Liste an). In Frank hat man stattdessen eine Funktion map : {X -> Y} -> List X -> List Y, die man sowohl auf effektfreie Funktionen, als auch auf effektbehaftete Berechnungen anwenden kann.

Ingo wird etwa über Continuations erzählen. Worauf der Schwerpunkt gesetzt werden sollen, entscheiden die Anwesenden. Möglichkeiten umfassen:

  • Tutorial zum Umgang mit Continuations: Was sind Continuations? Wie geht man mit ihnen um? Welche Vorteile haben Sprachen, die Continuations eingebaut haben (wie etwa Scheme) oder die in einer angenehmen Syntax mit Continuations nachgerüstet werden können (wie etwa Haskell mit der Continuation-Monade)? Was hat es mit der CPS-Transformation auf sich? Wie kann man dank Continuations OpenGL-Grafikprogrammierung so aussehen lassen, als ob man in QBASIC der 90er Jahre programmiert? Sind Continuations auch gefährlich? Wieso sagt alle Welt, dass die Continuation-Monade die Mutter aller Monaden sei?

  • Konstruktive Mathematik ist nicht nur ein Teil von klassischer Mathematik (das ist klar: alles, was man konstruktiv beweisen kann, gilt auch klassisch), sondern umgekehrt ist vermöge der “Doppelnegationsübersetzung” auch klassische Mathematik ein Teil von konstruktiver Mathematik. Mit der richtigen Brille (der Curry–Howard-Brille) betrachtet, ist die Doppelnegationsübersetzung genau dasselbe wie die CPS-Transformation.

Die Doppelnegationsübersetzung wurde in den 30ern entdeckt, die CPS-Transformation in den 70ern. In den 90ern wurde offenbar, dass es sich um dieselbe Entdeckung handelte.

Christine leitet anschließend eine Diskussionsrunde nach dem OpenSpace- oder LeanCoffee-Format an.

Programm für das vierundzwanzigste Treffen am 23. März 2017

Uwap wird eine Einführung in lineare Logik und lineare Typsysteme geben.

Manuel hält einen Vortrag mit dem Titel Kenn dein Limit.

Daniel stellt Rust vor.

Du schreibst ein cooles Haskell-Projekt, hast eine tolle neue funktionale Programmiersprache entdeckt, oder verstehst endlich, wie SchachGo-AIs funktionieren? Dann halte einen Vortrag! Die Organisation geht über unsere Mailingliste.

Kurzvorträge (< 10 min) können auch unangekündigt gehalten werden, in Absprache mit der jeweiligen Organisatorin.

Wir mussten die Mailingliste Anfang Oktober auf einen neuen Server umstellen. Dabei sind leider manche der eingetragenen E-Mail-Adressen verloren gegangen. Wer nie etwas auf der Liste geschrieben hatte, muss sich neu anmelden.

Treffen & Veranstaltungen