您的位置:首页 > 移动开发

SICP exercise 1.43

2007-06-13 17:28 253 查看
书的网页提供的Complete Code中没有. 所以加上

Exercise 1.43. 
If f is a numerical function and n is a positive integer, then we can form the nth repeated
application of f, which is defined to be the function whose value at x is f(f(...(f(x))...)). For example, if
f is the function x ->x + 1, then the nth repeated application of f is the function x ->x + n. If f is the
operation of squaring a number, then the nth repeated application of f is the function that raises its
n th power. Write a procedure that takes as inputs a procedure that computes f and a argument to the 2 positive integer n and returns the procedure that computes the nth repeated application of f. Your procedure should be able to be used as follows:
((repeated square 2) 5)
625
Hint: You may find it convenient to use compose from exercise   1.42

solvation:

(define (repeated fn n)
  (lambda (x)
    (if (= n 1)
        (fn x)
        (fn ((repeated fn (- n 1)) x)))))

(define (square x)
  (* x x))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息