如果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中的签名函数?
- 3. Scheme中的递归函数
- 4. SCHEME中的Remove-1st函数
- 5. 重复应用函数特定次数
- 6. 在Python中重复函数
- 7. 在函数中重复函数R
- 8. 使用宏的Scheme中的Currying函数
- 9. 在Scheme中实现min/max函数
- 10. 如何在Android应用程序中重复调用函数?
- 11. 在javascript中调用重复函数
- 12. 在应用程序中使用URL-Scheme
- 13. Scheme,高阶函数和curried函数
- 14. 返回函数的Scheme函数
- 15. Scheme函数不会打印
- 16. 在函数中重复参数
- 17. 重复调用嵌入在init函数中的函数
- 18. 调用函数的Python重复函数
- 19. Scheme中的迭代范围函数/ Lisp
- 20. 函数重复调用
- 21. 重复函数调用
- 22. WP_Query中的重复函数
- 23. 匿名函数在Scheme中调用自己的机制?
- 24. 如何在Scheme中使用符号作为函数?
- 25. 在Mathematica中重复n次函数
- 26. 在Javascript中识别重复函数
- 27. 在Excel中重复嵌套函数
- 28. 函数在JavaScript中重复n次
- 29. 在Permute函数中重复的问题
- 30. jQuery函数重复