3 - Uebung zu Theorie der Programmierung [ID:10939]
50 von 347 angezeigt

Ich wollte heute wieder mit einem Exkurs in die Biologie starten. Einmal durchgehen bitte.

Das ist ein Buch über Vögel. Die Idee für heute ist, dass wir noch eine Aufgabe vom ersten Blatt machen.

Dann zum zweiten Blatt gehen, das dann über das Kapitel-Landakalkyl ist.

Dieses SKI ist so das Bindeglied zwischen diesen zwei Kapiteln.

Wir schauen uns das jetzt einfach mal an.

Wir bekommen ganz stupide wie immer irgendwelche Regeln und irgendwelche Konstanten und Operatoren mit irgendwelchen Aritäten.

Wir haben keine Ahnung was das tut. Jetzt schauen wir uns das einfach mal an.

Also Blatt 1, Übung 3, SKI Spaß. Wir haben drei Konstanten.

Und so einen Infix-Operator, den wir eigentlich immer weglassen. Wichtig ist die Klammerung dieser Ausdrücke.

Und so drei Regeln. Wir haben das beim letzten Mal ja schon mal kurz angeguckt. Irgend so ein IX wird zu X. Woran erinnert uns das I?

Beim letzten Mal hat es jemand erraten. Das ist die Identität.

Die nächste ist Kxy. Und so wie wir beim Landakalkyl schon Sachen weglassen, lassen wir hier die Klammern auch schon weg.

Also wir stellen uns die Klammerung von links vor. Das hier wird zu X.

Also K ist sowas wie Konstant. Also egal was ich hier für ein Y ansetze, es kommt immer X raus.

Also dieses Ding hier macht irgendwie Konstant X. Und dann können wir diese Sequenz von so zwei Sachen bauen.

Wir bekommen irgendwie so zwei Ausdrücke. X und Y und ein Wert Z. Also das nur für die Intuition.

Und wir lassen den Wert Z auf beide los. Und schalten diese zwei Dinge hintereinander.

Das ist so viel zur Intuition. Aber es ist natürlich nur ein Thermersetzungssystem. Mehr nicht.

Und mit diesen Regeln können wir jetzt irgendwie was bauen. Also wir schauen uns zum Beispiel mal den ersten Ausdruck an.

Hat sich jemand schon mal mit der Aufgabe befasst und möchte einer der Ausdrücke hier mal normalisieren?

Leider nein. Dann muss es ich halt machen. Also wir betrachten so einen Ausdruck S i i S i i.

Und jetzt stellen wir fest, aha, das ist ein Thermersetzungssystem. Wo sind Redekse? Ja wir haben zwei Redekse.

Wir haben zum einen dieses S i i. Also machen wir es vielleicht sogar so. S X Y Z ist das eine Redeks.

Oh und wir haben nur eins. Ich habe mich getäuscht. Und das ist unser Redeks. Also es spielt erstmal keine Rolle,

ob wir welche Ausführungsstrategie nehmen. Also ob wir Lazy Evaluation machen oder Strict Evaluation.

Weil sonst haben wir keinen Redeks, oder? Nee.

Also wird das zu, naja, einsetzen i S i i i S i i. So geklammert. Und jetzt haben wir zwei Redekse.

Hat jemand gerade, keine Ahnung von mir gerade reden, ich sehe ein paar kritische Gesichter.

Hat irgendjemand eine konkrete Frage? Was soll das? Was ist i? Was macht dieser Pfeil?

Ich kann mal das so klammern, wie man es eigentlich klammern müsste. S i i darum eine Klammer.

S i darum eine Klammer i. Ah okay, ja kann ich machen.

I S i i i S i, nein zu breit, i i. Besser.

Und jetzt haben wir zwei Redekse. Wir haben hier zum einen dieses i und das hier.

Ja und jetzt können wir uns halt aussuchen. Also machen wir mal zwei Sachen. Das erste ist, also das bezeichnen wir als Stern. Machen wir erstmal Lazy.

Lazy macht uns aus dem Stern. Ja bei Lazy müssen wir das möglichst weit außen suchen. Ja möglichst weit außen ist das hier.

Also lasse ich dieses hier schalten. Also kommt S i i und das hintere bleibt unverändert.

Und jetzt kann sich schon jemand vorstellen was jetzt passiert. Wir haben nämlich jetzt genau die gleiche Situation wie hier oben.

Also machen wir das einfach mal. Das wird zu, wir haben nämlich wieder ein wirkliches weit außen S x y z.

Also haben wir i. Das ist unser z. Unser x y, unser y. Und jetzt nochmal das z.

S i i. Diese Klammer zu, diese Klammer zu, diese Klammer zu. Ja.

Und wenn wir jetzt weiter außen evaluieren, dann wird zuerst dieses hier ausgewertet. Also wir schreiben das mal hin. Also das hier, jetzt das hier. S i i.

Und irgendwie sieht das so ein bisschen zyklisch aus. Wir können es wieder evaluieren. Jetzt können wir ein bisschen so die Rechenmaschine spielen.

Das ist scheiße aus. Dieses hier, dieses hier, dieses hier. Ja und so geht das immer weiter.

Das wird irgendwann zu S i i. Und dann kommen ganz viele i's. Und ganz tief drin ist so ein S i i. Und dann kommt die große Klammer zu.

Und das ist natürlich ein i. Genau. Das ist die lazy Variante. Und die strenge Auswertung, also das strict evaluation, macht, was macht das aus dem Stern?

Naja bevor ich, da suche ich jetzt auch wieder das linkest mögliche, das ist das i. Versuche all seine Parameter möglichst weit auszuwerten. Das geht.

Also das ist noch das. Also kommen wir zu S i i.

Und welches Redex werden wir jetzt aus? Wir haben zwei Redex zur Auswahl. Das eine ist dieses mit S x y z. Und das andere Redex ist hier i und x.

Ja. Genau. Denn, warum haben wir hier oben noch nicht das i ausgewertet? Diese i-Regel hier fasst es dahinten nicht an.

Also wenn ich es mir als C-Funktionsprogramm auf Ruf vorstelle, dann nimmt das i hier ein Parameter. Und der ist komplett schon ausgewertet. Da kann ich nichts weiter machen.

Zugänglich über

Offener Zugang

Dauer

01:30:37 Min

Aufnahmedatum

2014-05-06

Hochgeladen am

2019-05-04 09:59:24

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen