次のように機能するScheme(R5RS)で関数を作成する必要があります:(power-close-to bn)そして、「e」と呼ばれる整数を返す必要があります:b ^ e> n with b、eおよびn 個の整数。
(power-close-to 2 10) 4 は b^e > n となる最初の整数であるため、4 を返さなければなりません。この関数を反復的に作成しましたが、再帰的な形。これは私のコードです:
(define e 0)
(define (power-close-to b n)
(for ((e (< (expt b e) n))
(+ e 1))
e))
しかし、試してみると、Scheme は次のエラーを出します: "for: undefined;" 私のSchemeは「for」の手順を知らないようですが、インターネット上の複数のSchemeコードで見たので、私の場合、彼が「for」を知らないと言った理由がわかりません。
ご協力いただきありがとうございます!
編集:再帰的にしようとしましたが、これは私がやった方法ですが、まだ反復的であると思います。再帰的にする方法が本当にわかりません。
(define e 0)
(define (power-close-to b n)
(if (< (expt b e) n)
(and (set! e (+ e 1)) (power-close-to b n))
e))
私もこれを試しましたが、試してみると、何も出力されず、終了しません(ただし、これは再帰的です(と思います))
(define e 0)
(define (power-close-to b n)
(if (< (expt b e) n)
(* b (power-close-to b n))
e))