2016-11-21 2 views
0
(define (f y) (lambda (y) (lambda (y) (+ y 5)))) 

(((f 3) 4) 5) `Stepping mit Lambda

Ich möchte die Schritte dieses zu übernehmen.

+0

Nizza Zuordnung Schritt Frage! :) –

+0

Bitte ändere deine Frage nicht vollständig. Das entwertet die Antworten, zu denen sich die Menschen Zeit genommen haben. Wenn Sie eine neue Frage haben, stellen Sie eine neue Frage. –

Antwort

0

bewerten:

(((f 3) 4) 5) 

Wo f =

(define (f y) (lambda (y) (lambda (y) (+ y 5)))) 

beginnen mit

(f 3) ;; yields ... 

(lambda (y) 
    (lambda (y) 
    (+ y 5))) 

nächstes nach ((f 3) 4) wir das Ergebnis vongeltenzu 4

((lambda (y) 
    (lambda (y) 
    (+ y 5))) 4) ;; yields 

((lambda (y) 
     (lambda (y) 
     (+ y 5))) 4)

nächstes nach (((f 3) 4) 5), wenden wir das Ergebnis von ((f 3) 4) zu 5

((lambda (y) 
    (+ y 5)) 5) ;; yields ... 

((lambda (y) 
    (+ y5 5)) 5) 

So ist die endgültige Antwort ist (+ 5 5), die 10

+0

@AnamayaGarodia gibt es keine Substitutionen zu machen. '(f 3)' gibt einfach zurück '(lambda (y) (lambda (y) (+ y 5))) – naomik

+0

Mit lambda definierte Funktionen geben sofort den Ergebnisausdruck aus der Funktion mit den Argumenten zurück, die in! –