Praktikum 13
- Sie erhalten eine noch allgemeinere Version von
akkumulator
aus Aufgabe 3, wenn Sie den Begriff des Filters für die kombinierten Terme einführen. Das heißt, es werden nur solche aus dem Wertebereich abgeleiteten Terme kombiniert, die einer angegebenen Bedingung genügen. Die sich daraus ergebende Abstraktion akkumulator-gefiltert
hat dieselben Argumente wie akkumulator
und zusätzlich ein Prädikat mit einem Argument, das den Filter darstellt. Schreiben Sie akkumulator-gefiltert
als Prozedur. Zeigen Sie, wie folgendes mit akkumulator-gefiltert
ausgedrückt werden kann:
- die Summe der Quadrate aller Primzahlen im Interval a bis b
- das Produkt aller positiven ganzen Zahlen kleiner als n, die Primzahl relativ zu n sind (d.h. alle positiven ganzen Zahlen i < n, so daß ggT(i,n) = 1).
- Statt einen Rahmen als Paar von Listen darzustellen, können wir einen Rahmen als Liste von Bindungen darstellen, wobei jede Bindung ein Name-Wert-Paar ist. Schreiben Sie die Operationen zur Bearbeitung von Umgebungen für diese alternative Darstellung neu. Machen Sie das theoretisch, damit Sie für die Entwicklung nicht das ganze System zum Laufen bekommen müssen.