1UnitedPower: Schleifen verzichtbar?

Beitrag lesen

Hakuna matata!

JavaScript und PHP haben auch native Map/Reduce-Funktionen, das macht hoffentlich jeden Einsatz von Schleifen überflüssig.

Nein, denn diese Funktionen können nur über vorgegebene Arrays iterieren. Schleifen, deren Endebedingung erst in einem der Durchläufe ermittelt werden kann, sind nicht durch map/reduce ersetzbar.

Ich hab mich bewusst provokant ausgedrückt, natürlich ist Map/Reduce alleine nicht funktional vollständig und man kann damit nicht jeden Algorithmus lösen. In der Praxis lassen sich aber gefühlte 99% aller Iterations-Probleme mit Map/Reduce (Filter und .co zähle ich auch dazu) sehr viel eleganter modellieren als mit Schleifen. Für das restliche 1% und die von dir angesprochene Problemgruppe bräuchte man unendlichle Datenstrukturen, ein ReduceRight und Lazy-Evaluation aka. call-by-need. Zumindest in JavaScript kann man sich das auch nachrüsten, siehe: Lazy.js

--
“All right, then, I'll go to hell.” – Huck Finn