Ein Parser für HL7-Nachrichten in weniger als 180 Zeilen Haskell-Code

Ein Argument gegen die Benutzung funktionaler Sprachen in einem kommerziellen Produkt ist oft, dass es für solche „exotischen“ Sprachen nicht genügend Bibliotheken gäbe. Für ausgewachsene funktionale Sprachen wie Scala oder Haskell zieht dieses Argument längst nicht mehr, denn es gibt für beide Sprache eine Menge qualitativ hochwertiger Bibliotheken und Komponenten. Und sollte es doch mal vorkommen dass für ein etwas ungewöhnlicheres Problem keine Unterstützung durch eine Bibliothek vorhanden ist, kann man meistens in kurzer Zeit Abhilfe schaffen und sich selbst eine kleine Bibliothek zusammenstellen.

Heute wollen wir das anhand eines Parsers für HL7-Nachrichten durchexerzieren. HL7 ist ein weitverbreiteter Standard zum Austausch medizinischer Daten. Wir setzen diesen Standard bei uns in der Firma oft im Rahmen unseres Produktes Checkped MED ein, über das wir schon an anderer Stelle in diesem Blog berichtet haben. Da der Checkpad-Server hauptsächlich in Haskell geschrieben ist, benötigen wir in Haskell natürlich auch einen Parser für HL7-Nachrichten. Da es einen solchen nicht fertig erhältlich gibt, haben wir in kurzerhand selbstgeschrieben. Sie werden in diesem Artikel sehen, dass wir eine performante und robuste Implementierung in weniger als 180 Zeilen Haskell-Code erstellen können, und diese Zeilen enthalten auch die Datentypdefinition für die HL7-Nachrichten sowie Tests. Der Code des eigentlichen Parsers ist weniger als 50 Zeilen lang.

Weiterlesen...

Was ist funktionale Programmierung?

Was ist überhaupt „Funktionale Programmierung?“ Zur Beantwortung dieser Frage dürften sich viele Neueinsteiger in das Thema an Wikipedia wenden. Die entsprechende Seite in deutscher Sprache lässt aber einiges zu Wünschen übrig, was mich dazu veranlasst hat den Titel dieses Blogs einmal grundlegend zu erklären.

Weiterlesen...

Zurich FP Afternoon / Haskell-Hackathon

Wie schon letzte Woche mit der Ankündigung des CUFP-Workshops möchten wir auch diese Woche interessante Veranstaltungen vorstellen, die sich mit funktionaler Programmierung beschäftigt. Diese Mal geht es um den Zurich FP Afternoon und den ZuriHac 2013. Beide Veranstaltung finden von Donnerstag, 29.8. 2013 bis Sonntag, 1.9. 2013 in Zürich statt, sind also insbesondere aus dem süddeutschen Raum gut erreichbar.

Weiterlesen...