SICP 习题 (1.43)解题总结
生活随笔
收集整理的這篇文章主要介紹了
SICP 习题 (1.43)解题总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SICP 習題 1.43 是前面兩道題的延續,習題要求我們定義一個過程(repeat f n) 。當中f是一個單參數過程。題目要求我們通過repeat過程將過程f調用n次,注意是嵌套調用n次,不是連續調用n次。就是說結果應該是(f ( f ( … (f x) …)))。而不是(begin (f x) (f x) (f x) … (f x))。
題目還提醒我們使用習題1.42所定義的compose方法。
細致想想的話這一工作能夠通過遞歸調用完畢,就是(repeat f n) 等于 (compose f (repeat f (- n 1))。就是說n次嵌套調用f能夠轉換成(f (<n-1次嵌套調用f))。
理解了這一點后就比較easy了,控制好遞歸調用的結束就能夠了。代碼例如以下:
(define (repeat f n)
(define (repeat-inner f cur-n)
(if (< cur-n n)
(compose f (repeat-inner f (+ cur-n 1)))
f ))
(repeat-inner f 1))
總結
以上是生活随笔為你收集整理的SICP 习题 (1.43)解题总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 教师节贺卡写什么送给语文,数学,英语老师
- 下一篇: 牛逼的css3:动态过渡与图形变换