Aufgehübscht! — Pretty-Printing

Um ein (verschachteltes) Objekt komfortabel untersuchen zu können, wird eine gute Darstellung desselben in Form von Text benötigt. Pretty-Printer versuchen genau das: Dinge so auf den Bildschirm zu drucken, dass die interne Struktur auf einen Blick ersichtlich ist. Wir schauen uns heute den Pretty-Printer aus Philip Wadlers Paper „A prettier printer“ (1997) an, dessen Besonderheit die Anwedung von Algebra auf Design und Implementierung ist. Daran werden wir ein weiteres Mal sehen, dass Datenmodellierung und Abstraktion der funktionalen Programmierung zu wunderbar einfachem und prägnantem Quellcode führen, der komplexe Domänen elegant beschreibt.

Weiterlesen...

Checkpad sucht Softwareentwicklerinnen und Softwareentwickler

Wir von Checkpad suchen eine Softwareentwicklerin oder einen Softwareentwickler mit Schwerpunkt funktionaler Programmierung an unserem Standort in Freiburg! Unser Produkt Checkpad besteht aus einer web-basierten und einer mobilen Softwarelösung, mit der viele Arbeitsabläufe im Krankenhaus einfacher und effizienter gestaltet werden können. Wir setzen zwar nicht ausschließlich funktionale Programmiersprachen ein, ein großer Teil der Software ist aber in Haskell geschrieben und auch beim Einsatz andere Programmiersprachen (z.B. Typescript oder Dart) lassen wir uns von funktionalen Design- und Architekturprinzipien leiten.

Weiterlesen...

Simple Restarts: Hinter den Kulissen

Im vorherigen Blogpost haben wir Conditional Restarts in Clojure kennen gelernt und dabei die Bibliothek „Simple Restarts“ verwendet. Diese Bibliothek wurde als Anschauungsbeispiel erstellt, um Conditional Restarts in Clojure zu erklären. In diesem Blogpost werden wir einen Blick hinter die Kulissen werfen und verstehen, wie die Magie hinter „Simple Restarts“ implementiert ist: Eine lehrreiche Reise voller Illusion, Überraschungen und „Aha!“s.

Weiterlesen...

Ein alter Hut: Conditional Restarts

Viele unserer Blogposts beschäftigen sich damit, wie effektbehaftete Programme beschrieben und getestet werden können. Dabei kommen freie Monaden oder algebraische Effekte zum Einsatz—Effektsysteme sind gerade ein heißes Thema. Common Lisp denkt sich: Das ist ein alter Hut. Denn mit Conditional Restarts ist ein mächtiger Mechanismus zur Abbildung von Effekten im Sprachkern vorhanden. Wir haben diesen in Clojure nachprogrammiert und werden Conditional Restarts in einer zweiteiligen Blogpost-Serie vorstellen. In diesem ersten Teil werden Conditional Restarts erklärt und an Beispielen die praktischen Einsatzmöglichkeiten aufgezeigt.

Weiterlesen...

F# ohne Windows mit Visual Studio Code

In Einstieg in Visual Studio mit F# haben wir im Schnelldurchgang die ersten Schritte im Zusammenhang mit Anwendungen in F# kennen gelernt. Dabei haben wir auf Visual Studio zurückgegriffen und uns somit auf Windows oder MacOS beschränkt.
Mit Visual Studio Code bietet Microsoft hingegen einen plattformunabhängigen Editor an. In diesem Blogpost zeigen wir ähnlich wie im vorherigen Post erste Schritte in F#, diesmal in Visual Studio Code unter einem linuxbasierten Betriebssystem. Dabei erhalten wir auch Einblicke in die Bedienung mit Kommoandozeilentools, die in nahezu gleicherweise unter Windows und MacOS anwendbar sind. Dieser Artikel geht an manchen Stellen weniger ins Detail als Einstieg in Visual Studio mit F#, weshalb wir diesen Blogpost vorab empfehlen. Weiterlesen...