Imperatives Programmieren in Haskell

Die wohl wichtigste Datenstruktur in Haskell ist die Liste. Da sie als einfach verkette Liste implementiert ist, arbeitet man meist nur am vorderen Ende, und so ist es auch kein Wunder dass es zwar eine Funktion take :: Int -> [a] -> [a] gibt, die die ersten n Elemente einer Liste zurück gibt, aber kein entsprechendes Gegenstück, dass die letzten n Elemente zurück gibt.

In diesem Artikel betrachten wir drei verschiedene Implementierungen einer solchen Funktion: Wir beginnen mit einer naiven funktionalen Implementierung, die sich aber als ineffizient herausstellen wird. Um hier Abhilfe zu schaffen greifen wir auf einen imperativen Algorithmus zurück und sehen dabei, wie man in Haskell imperativ programmieren kann. Zuletzt finden wir dann noch eine effiziente, funktionale Implementierung.

Weiterlesen...

Buchbesprechung: Das Curry-Buch

Vor einigen Tagen schickte mir netterweise Hannes Mehnert ein Exemplar seines neuen Buchs Das Curry-Buch - Funktional programmieren lernen mit JavaScript (zusammen mit Co-Autoren Jens Ohlig und Stefanie Schirmer, gerade erschienen bei O‘Reilly, um die 30€). Hannes bin ich immer mal wieder bei der ICFP über den Weg gelaufen - dort hat er sich beim ICFP Programming Contest als Weltklasse-Programmierer zu erkennen gegeben. Für uns ist das Buch eine gute Gelegenheit, das Repertoire unseres Blogs um die Kategorie „Buchbesprechungen“ zu erweitern.

Weiterlesen...

Medizinische Datenverarbeitung mit funktionaler Programmierung - Ein Beispiel aus der Praxis

Funktionale Programmierung ist längst den Kinderschuhen entwachsen. Inzwischen setzen auch Firmen wie z.B. Twitter oder Microsoft auf funktionale Programmierung, um damit sichere, korrekte und performante Software in kurzer Zeit zu entwickeln.

Heute zeigen wir anhand eines Beispiels aus der Praxis, welche Produkte wir als Firma mit funktionaler Programmierung realisieren. Konkret geht es um das Produkt Checkpad MED, eine digitale und mobile Krankenakte für Krankenhausärzte (Film, Homepage). Checkpad MED wird in Kooperation mit Lohmann & Birkner unter technischer Federführung der factis research GmbH zu einem großen Teil in funktionalen Programmiersprachen entwickelt, im restlichen Teil setzen wir zumindest auf funktionale Paradigmen und Techniken.

In diesem Artikel soll es erstmal weniger um technische Details gehen sondern vielmehr um einen Überblick über das System und seine Architektur. Denn auch auf der Architekurebene kann man Prinzipien der funktionalen Programmierung anwenden und damit Vorteile bzgl. guter Testbarkeit und Nachvollziehbarkeit genießen.

Weiterlesen...