2008-10-23 16 views

उत्तर

8

दो बार नंबर करने के लिए समारोह आवेदन:

(lambda (f x) (f (* 2 x))) 

दो बार नंबर करने के लिए समारोह को लागू करने (जो आप से पूछना करने का इरादा हो सकता है क्या है):

(lambda (f x) (f (f x))) 
5

ग्रेग के जवाब सही है, लेकिन आप इस बारे में सोच सकते हैं कि आप स्वयं को जवाब खोजने के लिए इस समस्या को कैसे अलग कर सकते हैं।

; A lambda expression 
;(lambda()) 

; which takes a function (of one argument) and a number 
;(lambda (fun num)) 

; and applies the function 
;(lambda (fun num) (fun num)) 

; to twice the number 
;(lambda (fun num) (fun (* 2 num))) 

((lambda (fun num) (fun (* 2 num))) + 12) 
2

यहाँ एक और तरीका यह दृष्टिकोण है:: यहाँ एक दृष्टिकोण है

एक अनुबंध, उद्देश्य लिखें, और हैडर:

(= (apply-double identity 10) 20) 
(= (apply-double - 15) -30) 
(= (apply-double/7) 1/14) 
:

;; apply-double : function -> number -> any 
;; to apply a given function to double a given number 
(define (apply-double fun num) ...) 

कुछ टेस्ट लिखें

फ़ंक्शन को परिभाषित करें:

(define (apply-double fun num) 
    (fun (* 2 num))) 

यह नुस्खा का संक्षेप है: http://www.htdp.org/2003-09-26/Book/

संबंधित मुद्दे