具有两个参数的球拍功能

时间:2016-12-10 22:04:05

标签: scheme racket r5rs

我正在尝试查看我在R5RS中的期末考试,但遇到一个简单问题的麻烦。我的教授不是很有帮助,我不认识班上的任何人。你能救我吗?

函数比率包含两个参数f(函数)和x(一个数字)。我不得不使用let语句。该方案函数应该产生以下结果:

F(X)+ F(X + 1)/ F(X)

这是我到目前为止所做的:

(define (ratio f x)
  (let ((f (+ x 1)))
    (/ (+ x (+ f 1))
       x)))

(ratio (lambda (x) (+ x 2)) 3)

我尝试了一个小时,但仍然无法得到正确的答案。

2 个答案:

答案 0 :(得分:4)

提示:允许a = f(x)并让b = f(x + 1)。输出应该是ab

在您的解决方案中,您将f绑定到x + 1的值。所以你的解决方案实际上是在计算(x + (x + 2)) / x。您需要将f应用于x,即(f x)

这是一个开始:

(define (ratio f x)
  (let ((a (f x)) (b (f (+ x 1))))
    ...))

答案 1 :(得分:1)

Math               Scheme
f(x)               (f x)
x+1                (+ x 1)
f(x+1)             (f (+ x 1))
a/b                (/ a b)
a/f(x)             (/ a (f x))
f(x+1)/f(x)        (/ (f (+ x 1)) (f x))
c + f(x+1)/f(x)    ?
f(x) + f(x+1)/f(x) ?