Kapitel 11. Faule Auswertung

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Obwohl Faulheit bei Menschen oft als Charakterschwäche angesehen wird, kann sie bei Programmiersprachen als vorteilhafte Eigenschaft betrachtet werden. In der Informatik ist Faulheit der Gegenspieler der Strenge - oder des Eifers - bei derCodebewertung.

In diesem Kapitel erfährst du, wie du durch Faulheit die Leistung verbessern kannst. Du lernst den Unterschied zwischen strikter und fauler Auswertung und ihre Auswirkungen auf das Design deines Codes kennen.

Faulheit vs. Strenge

Die Strenge einer Sprache beschreibt die Semantik, mit der dein Code ausgewertet wird.

Diestrikte Auswertung erfolgt so schnell wie möglich, z. B. beim Deklarieren oder Setzen einer Variablen oder bei der Übergabe eines Ausdrucks als Argument.Die nicht-strikte Auswertung erfolgt hingegen, wenn das Ergebnis eines Ausdrucks tatsächlich benötigt wird. Auf diese Weise können Ausdrücke auch dann einen Wert haben, wenn ein oder mehrere Unterausdrücke fehlschlagen.

Die funktionale Programmiersprache Haskell hat standardmäßig eine nicht-strikte Semantik und wertet Ausdrücke von außen nach innen aus. Dadurch kannst du Kontrollstrukturen oder unendliche Datenfolgen erstellen, da die Erzeugung und der Verbrauch von Ausdrücken getrennt sind.

Werfen wir einen Blick auf den folgenden strikten Java-Code einer einfachen Methode, die zwei Argumente akzeptiert, ...

Get Ein funktionaler Ansatz für Java now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.