0
私はSchemeの初心者ですが、私が書こうとしていることは非常に単純なようです。私がしようとすると、スキーム:エラー:#<undef>は関数ではありません
(define (expt x n)
(cond ((= n 0) 1)
((= n 1) x)
((= n -1) (/ 1 x))
((< n 0) (* (/ 1 x) (expt x (+ n 1))))
(else (* x (expt x (- n 1)))))
機能expt
が正しく動作するようだが:本家、私は欠けているものがある...私は、次の定義があります。
(define (fast-expt x n)
(if (even? n)
(expt (expt x (/ n 2)) 2)
(expt x n)))
をし、それは私の前の関数を使用していますfast-expt
をテストすると、それは私に以下を投げます:Error: #<undef> is not a function [fast-expt]
。問題があれば、私はオンラインコンパイラを使用します。
はい、私は 'fast-expt'の前に' expt'を定義しましたが、それでも私のために働きません。あなたのコードをコピーして貼り付けるときでも、私は本当に混乱しています。私はDrRacketエディタでもインストールして試してみます。repl.itコンパイラの中にあるかもしれません。そして、 'fast-expt'関数への改良に感謝します:) – barni
@barni私はあなたのコードが閉じた括弧がありません。私の更新された答えを見てください。そして、私は[repl.itでテストしました](https://repl.it/repls/HarmoniousBlueLeafbird)、うまくいきます。 –
ええ、DrRacketでコードを実行すると、私はまったく同じようにスローされます...ちょうどカッコです..どのような愚かな間違い!どうもありがとうございました:) – barni