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.
Normal Order (Klausur Apr.95, 7a)
Kann es sein, dass die Add-Funktion bei Normaler Auswertung in einer Endlosschleife landet, weil in normal order doch erst alles eingesetzt und dann ausgerechnet wird.
(add 1 (add 1 2))
(add (succ 1) (pred (add 1 2)))
(add (succ (succ 1)) (pred (pred (add 1 2))))
…
usw.
Wir haben mal so ne ähnliche Aufgabe in der Übung gemacht (3.1c), wobei da allerdings beim IF das x überprüft wird, nicht wie hier das y, dann gehts.
wenn ich mir das so anschaue, würden bei normaler auswertung ziemlich viele rekursive/iterative funktionen sterben.
also vergiss am besten gleich mal, dass die normale auswertung in der praxis sinnvoll anwendbar ist
ja aber was ist dann die richtige loesung dafuer? ich denke, der dawell hat schon recht, auch wenn ich da selber nicht drauf gekommen waere … zumindest nicht, ohne mich nochmal damit zu beschaeftigen, was ich bis jetzt auch noch nicht gemacht habe.
Also ist das ganze jetzt so zu resumieren? Wenn ich meine funktion eigentlich weiter zerlegen muesste um zu den atomen des ganzen zu kommen, es aber nicht kann weil dazu die vorherige auswertung einer anderen funktion notwendig waere dann wird meine funktion mit nem fehler / endlos ausgewertet (normale order)
lieg ich da richtig ?
öh
wieso zerlegst du add noch in pred und succ?
wir ham dass immer nur bis add gemacht in der übung…
oder war das in der aufgabe so gegeben?
Drager
ja! welche klausur das ist kannst du oben nachlesen. schau es dir da einfach mal an.
kann mir mal jemand sagen was normale auswertung macht wenn ich zur auswertung meiner topfunktion eine ausgewertete funktion benoetige (als paramter) ? ich bin etz doch etwas verunsichert. wertet des ding dann zwangsweise aus und faehrt dann mit der auswertung der topfunktion fort oder machts dann “fick dich ich mag das nicht!” ???