A8c)
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Klausur Ws2009 Frage zu ADTs A8c)
Hier gehts erstmal zum Loesungsvorschlag der Frage 8c), den ich nicht ganz verstehe:
https://fsi.cs.fau.de/dw/pruefungen/bachelor/aud/loesungws09
Die Klaussurfrage dazu findet man auf StudOn unter AuD Organisatorisches, Fruehere Klausuren, 2010:
https://www.studon.fau.de/mep2365631.html
Meine Loesung zu der Aufgabe 8c) war folgende:
ops:
purge: String x MultiSet → MultiSet soweit noch alles gleich
axs:
purge (s, put(s, create)) = create //Hier unterscheidet sich mein Ansatz, im Loesungsvorschlag steht:
//purge(s, create) = create.
//Braucht man also drei axiome oder ist meins einfach unnoetig?
purge(s, put(x, m)) = { purge(s, m) falls s = x
{ put(x, purge(s, m)) sonst
Danke schonmal fuer Antworten
Irgendein Axiom, welches das create in sich hat, ist auf jeden Fall nötig, vor allem für den absoluten Basisfall ist dieses Axiom unverzichtbar.
purge(s, create()) = create()
Würde deine Lösung nun zB mit purge(“hallo”,create()) aufgerufen werden, passt kein Axiom. Du brauchst das gerade genannte also sicher.
Die Lösungen der FSI sind mMn die einzigen beiden komplett richtigen Wege, bei denen nichts zu viel ist, aber auch nichts vergessen wurde.
Ich mache es immer so, wenn ich mir unsicher bin ob ich zu viele Axiome habe, dass ich dieses Axiom einfach mal streiche und schaue, ob es immer noch funktioniert.