저는 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]
. 중요한 점은 온라인 컴파일러를 사용하는 것입니다. https://repl.it
예,'fast-expt' 전에는'expt'를 정의했지만 여전히 저에게는 효과가 없습니다. 코드를 복사하여 붙여 넣을 때도 그렇게 혼동하지 않습니다. DrRacket 편집기에서 설치하고 시도해 보겠습니다. 아마도 repl.it 컴파일러에 들어있을 것입니다. 그리고'fast-expt' 함수를 개선 해줘서 고맙습니다. :) – barni
@barni 닫는 괄호가 누락되었습니다. 업데이트 된 답변을 참조하십시오. 그리고 난 [repl.it] (https://repl.it/repls/HarmoniousBlueLeafbird)에서 테스트했습니다. 제대로 작동합니다. –
그래, DrRacket에서 코드를 실행하면 나도 똑같이 던져 버린다. 단지 괄호 만 쓰면 .. 어리석은 실수 야! 대단히 감사합니다 :) – barni