如果f是一個數值函數,而n是一個正整數,那麼我們可以形成f的第n次重複應用,它被定義爲在x處的值爲f(f(...(f X))...))。例如,如果f是函數x + 1,那麼f的第n次重複應用就是函數x + n。如果f是對數字進行平方運算,則f的第n次重複應用是將其論點提升到2^n次冪的函數。編寫一個程序,該程序將一個計算f和一個正整數n的程序作爲輸入,並返回計算f的第n次重複應用程序。你的程序應該能夠被用作如下:在Scheme中重複應用函數?
((repeated square 2) 5) 625
你可以使用這個簡化的答案:
(define (compose f g) (lambda (x) (f (g x))))
1
A
回答
1
你剛纔刪除和reask這個問題?我在這裏複製我以前的答案(謝天謝地,我的瀏覽器緩存了它):
嗯,你可能想要這樣的東西吧?
((repeated square 3) 5)
-> (square ((repeated square 2) 5))
-> (square (square ((repeated square 1) 5)))
-> (square (square (square ((repeated square 0) 5))))
-> (square (square (square (identity 5))))
(我不知道標識是否在計劃預定義的。如果沒有,很容易寫。)
現在,這不是直接可重複的,因爲你不能神奇的外封裝代碼呼叫重複與任意的東西。但是,使用撰寫重寫時,這些縮減步驟是什麼樣的?你能在結果列表中找出一個模式並重現它嗎?
1
(define (repeated f n)
(if (= n 1)
f
(compose f (repeated f (- n 1)))))
相關問題
- 1. Scheme:重新定義內置函數
- 2. SCHEME中的Remove-1st函數
- 3. Scheme中的簽名函數?
- 4. 在Scheme中實現min/max函數
- 5. 如何在Android應用程序中重複調用函數?
- 6. 在javascript中調用重複函數
- 7. Scheme,高階函數和curried函數
- 8. 在函數中重複參數
- 9. 重複調用嵌入在init函數中的函數
- 10. 調用函數的Python重複函數
- 11. 函數重複調用
- 12. 重複函數調用
- 13. 如何在Scheme中使用符號作爲函數?
- 14. 在Permute函數中重複的問題
- 15. 重複php函數
- 16. 如何在Scheme中指數?
- 17. Scheme:函數,返回數字列表
- 18. Scheme函數返回第一個數字
- 19. 從WebKit iframe中的遠程URI重定向到AIR應用:/ scheme
- 20. 在Python中重複函數內函數3
- 21. 函數中的重複參數檢查
- 22. C++如何使用any_of在函數中查找重複數字?
- 23. 轉換jQuery函數以便重複使用,不用重複
- 24. 抽象函數/避免函數重複
- 25. 如何從Scheme的列表中刪除非重複的元素?
- 26. 我應該使用setInterval函數來重複這個還是一個Jquery重複函數?
- 27. 函數重複的重置計數器
- 28. R5RS Scheme,霍夫曼樹函數
- 29. 以下函數在Scheme編程語言中做了什麼
- 30. 集合函數在Scheme中如何工作?