我正在计算连续分数(现在的黄金比例),这是我的代码:
(define cont-frac
(lambda (n d k)
(define res (+ (/ n d) n))
(if (= k 0)
res
(cont-frac n res (- k 1)))))
我称之为:
(cont-frac 1.0 1.0 100)
返回1.618033988749895。
但我的老师要我这样称呼它:
(cont-frac (lambda (x) 1.0)
(lambda (x) 1.0)
100)
我是R5RS的新手,这样的事情对我来说还不是很清楚。我为什么要这样称呼它?我如何编码我的cont-frac函数来允许这个?不确定这些信息是否有用,但我最终想要使用函数作为参数之一。
提前致谢。
答案 0 :(得分:0)
你的老师可能希望你能够根据n来评估d和k
这种用法允许您选择每次调用cont-frac时评估步骤错误的方式。
这应该是它的样子:
(define cont-frac
(lambda (n d k)
(define x n) ;; assuming you want to evaluate d and k based on n
(define res (+ (/ n (d x)) n))
(if (= (k x) 0)
res
(cont-frac n res (lambda (x) (- (k x) 1))))))