SICP exercise 1.43

本文介绍了一个过程,通过定义一个过程来实现数值函数f的n次重复应用。此过程接受一个计算f的过程和两个正整数作为输入,并返回计算第n次重复应用f的过程。文章还提供了一个具体的实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

书的网页提供的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))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值