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.
Aufgabe 6.3.1 und 2
Hi,
ich hab da ein Problem mit Aufgabe 6.3.1 und 6.3.2:
Was zum Teufel wollen die da eigentlich von einem ???
MFG
Hi nochmal,
Durch das lösen von Aufgabe 6.4 hab ich jetzt kapiert worum
es bei 6.3.2 geht, da gibts auch nen Hinweis im Structure and bla bla.
Aber 6.3.1 ist irgendwie komisch ?!?
Hier mal ein paar Ideen zur 6.3.2
Aufgabe 6.3.2
Gegeben:
(define anwendung-auf-2 (lambda (f) (f 2)))
- (anwendung-auf-2 quadrat)
Das gleiche Beispiel ist im Structure and bla bla und da soll quadrat heissen “quadrieren”
also (* x x) !! Geht aber hier nicht aus der Aufgabe hervor. Immerhin könnte man das ganze auch so verstehen das
der Wert quadrat übergeben wird und das führt natürlich zu Blödsinn.
Würde ergeben:
Das f im lambda Ausdruck wird durch die Prozedur quadrat ersetzt und es wird das Quadrat von 2 nämlich 4 ausgegeben !
- (anwendung-auf-2 (lambda (x) (* (let ((x (+ x 1))) x) x)))
Würde ergeben:
zuerst wird der komplette lambda Ausdruck übergeben, was dazu führt, das 2 für x eingesetzt wird.
Ergebniss der Auswertung ist dann 6 wegen der lokalen erhöhung von x im let Ausdruck !
-
((anwendung-auf-2 (lambda (x) (lambda (y) (* x y)))) 3)
Hmmm, durch die Vorschrift von oben wird x = 2, wenn man das Ergebniss 6 betrachtet, dann muss
offensichtlich y = 3 gesetzt werden, aber wie das geht check ich nicht ??? -
(anwendung-auf-2 anwendung-auf-2)
. . . Ich geh jetzt mal eine rauchen . . .