Leichtgewichtiges DataFrame in MicroHs: Ein Haskell 2010 Abenteuer

2025-09-11

Angefangen mit einem Android-Projekt in Frege (Haskell auf der JVM) im Jahr 2015, führte die Reise des Autors in die funktionale Programmierung zu dem Bestreben, seine DataFrame-Bibliothek von GHC für die Kompatibilität mit MicroHs zu entkoppeln. Dieser Beitrag beschreibt die Implementierung der Kernfunktionalitäten von DataFrame – Konstruktion, einfache Ausdrücke, `filterWhere`, `derive` und Markdown-Rendering – in Haskell 2010, ohne GADTs, Typfamilien oder Reflexion. Das Experiment zeigt, dass die Kernfunktionalität, obwohl ausführlich, weiterhin funktionsfähig ist und diese Portabilität die Auswahl zwischen MicroHs (für kleine CLIs oder eingebettete Kontexte) und GHC (für Geschwindigkeit und Ökosystemzugriff) ermöglicht. MicroHs-Binärdateien sind etwa 100-mal kleiner, aber 5-10-mal langsamer; ein guter Kompromiss für viele Data-Wrangling-Aufgaben, wobei ein GHC-Backend für anspruchsvolle Aufgaben verwendet werden kann.

Entwicklung