2016-12-10 12 views
3

私はR5RSの最終試験を見直そうとしていますが、簡単な問題では問題があります。私の教授は本当に役に立たず、私のクラスの誰も知らない。手伝って頂けますか?2つの引数を持つラケット関数

関数の比率は、f(関数)とx(数値)の2つのパラメータを取ります。私はlet文を使用しなければならなかった。スキーム機能のための結果を生成するようになっている:(X)+ F(X + 1)/ F(X)

fはこれは私がこれまで持っているものである。

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

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

私はこれで1時間作業しましたが、それでも正しい答えを得ることはできません。

答えて

4

ヒント:a = f(x)とし、b = f(x + 1)としましょう。出力はabという点でどうなるでしょうか?

解決策では、fx + 1の値にバインドします。したがって、あなたの解は実際には(x + (x + 2))/xと計算されます。 fxに適用する必要があります。つまり、(f x)です。ここで

がスタートです:

(define (ratio f x) 
    (let ((a (f x)) (b (f (+ x 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) ? 
関連する問題