2017-02-01 4 views
0

DrRacketをこの問題に使用する必要がありますが、コードを実行するたびにこのエラーメッセージ "gcd:この名前は以前に定義され、定義された "。 (また、私はDrRacketでの高度な学生[カスタム]などの言語を選択し 以下の私のコードは、その再帰関数が最大公約数を見つけるために:。gcd:この名前は以前に定義されたもので、再定義することはできません

(define (gcd n m) 
    (cond [(= m 0) n] 
    [else (gcd m (modulo n m))])) 

(check-expect (gcd 0) 0) 
(check-expect (gcd 12 8) 4) 
(check-expect (gcd 6 12 8) 2) 

答えて

2

gcd機能は、すでに高度の一部として提供されます学生の言語as you can see in the documentation here。完全なラケット言語とは異なり、教授言語はライブラリ関数と同じ名前の関数を定義することはできません。gcdの定義を削除すると、すべてのテストは合格になります。

これは宿題場合は、おそらくあなたのgcdの機能を別の名前にする必要があります。 ssignmentでは、関数の名前をgcdとする必要があります。割り当てに問題がある可能性があります。

+0

名前を変更してもうん、今はエラー機能に直面しています。私はそれをgcd-structuralに変更し、これを "gcd-2引数を期待するが、1つしか見つからない:2つの引数を期待するが、1つしか見つからない"私は困惑している。 –

+0

実際にあなたは、私が問題のあることがわかっていることを知っています。それは0か何か他のものにすることはできません。 2つの引数しかないので、2番目のcheck-expectは正しい形式です。まあ、これは、私は時々笑いを愚かな人に伝えます...ねえ、あなたの助けに感謝します。 –

関連する問題