1unitedpower: Ausgabe in Kategorien zusammenfassen

Beitrag lesen

Dein eher theoretischer Ansatz ist zwar möglich und mag auch "elegant" sein, ist aber um einiges teuerer, als der "Einmaldurchlauf".

Das ist keine pure Theorie, gerade in der JavaScript-Welt ist solcher Code eher der Normalfall, in PHP ist funktionale Programierung noch recht jung und unerforscht, aber auch da zeichnet das Interesse eine positive Tendenz ab.

Den Tradeoff Wiederverwendbarkeit für Performanz würde ich zudem ohne zu zögern fast immer eingehen, jede IO-Operation wirkt sich vermutlich um Potenzen stärker auf die reale Laufzeit aus. Ansonsten bleibt immernoch der Griff zu einer Lazy-Evaluation-Bibliothek, ebenfalls ein Konzept der funktionalen Programmierung, damit lassen sich Iterationen (wie hier die Datenaufbereitung und die Ausgabe) diskret modellieren und bei der Ausführung wird trotzdem jeder Datensatz nur höchstens einmal iteriert. Bei komplexen Kontrollflüssen wäre man dann wahrscheinlich sogar besser dran.

Aber man kann Dinge auch beliebig kompliziert machen, obwohl sie einfach behandelt sogar leicht verständlich sind ;-P

Mir ging es nicht primär um Einfachheit, mir ging es in erster Linie um Wiederverwendbarkeit und Robustheit (gegenüber Vorsortierung). Die Einfachheit folgt dann bei der Anwendung der Funktion, wenn das Problem sich ein zweites oder drittes Mal stellt, muss man nicht wieder den verwobenen, prozeduralen Code runterrackern, sondern kann die einmal geschriebene Funktion dann einfach wiederverwenden.