Pretty-Printing II - Laziness FTW

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.

Im letzten Blogpost Aufgehübscht! - Pretty-Printing haben wir uns den Pretty Printer von Philip Wadlers Paper „A prettier printer“ (1997) angeschaut und verstanden, wie wir allein mit seinen sechs Operatoren eine Dokumentensprache beschreiben und damit schöne Pretty-Prints erstellen können. In diesem Post wollen wir uns die eigentliche Implementierung ansehen und verstehen, warum – trotz der Erzeugung von vielen möglichen Layouts – der Algorithmus sehr effizient ist.

Weiterlesen...

Funktionale Programmierung in der Praxis: Validierung mit applikativen Funktoren

Unser erster Artikel in der Reihe „Funktionale Programmierung in der Praxis“ mit dem Thema Datenvalidierung mit applikativen Funktoren.

Weiterlesen...

Neue Reihe: Funktionale Programmierung in der Praxis

Mit diesem Post starten wir unsere neue Reihe zum Thema „Funktionale Programmierung in der Praxis“.

Weiterlesen...

BOB 2022 – Retrospektive

Am 11.03.2022 fand wieder die BOB, unsere alljährliche Entwickler:innenkonferenz, statt. Die kleine BOB-Strichfigur ist damit mittlerweile schon acht Jahre alt. Letztes Jahr fand die BOB bereits rein virtuell statt und auch 2022 nutzten wir wieder ausschließlich die Gather-Plattform, um die Konferenz ohne Medienbruch in einer reinen Pixelwelt abzuhalten. Wie im Jahr zuvor führte diese Entscheidung dazu, dass echtes BOB-Feeling aufkam. Anstatt sich nur hinter abgeschalteten Webcams anzuschweigen, konnte man sich auch dieses Jahr wieder in Workshop-Räumen treffen, zufällig auf den Gängen über den Weg laufen und dann auf einen Plausch auf der Dachterrasse verabreden. Ein Teilnehmer war positiv überrascht, wie nah die virtuelle BOB tatsächlich einer Vor-Ort-Konferenz kam: „Ich schaute einen Talk an. Neben mir unterhielten sich zwei lautstark über etwas anderes. Ich tat genau das, was ich in einer Vor-Ort-Konferenz auch getan hätte: Ich stand von meinem Platz auf und setzte mich drei Reihen weiter nach vorn.“

Weiterlesen...

Scala 3: Über Vereinigungen und Schnittmengen

Nach 8 Jahren, 28000 Commits und 7400 Pull-Requests war es am 14. Mai 2021 endlich so weit: Scala 3 wurde veröffentlicht. Neben dem neuen Compiler „Dotty“ haben es eine neue Syntax sowie einige Neuerungen an der Sprache in Scala 3 geschafft. In diesem Blogpost der Serie über interessante Neuerungen werden wir über Union- und Intersection-Types sprechen. Zwar existierte für Intersection-Types bereits ein eingeschränkter Mechanismus, doch Union-Types sind gänzlich neu in Scala 3. Wie die neuen Typen verwendet werden können, welche Möglichkeiten diese bieten und wie sie sich zu aus Scala 2 bekannten Typen abgrenzen, wird in diesem Blogpost erörtert.

Weiterlesen...