1
라켓에 "느린"지수 함수를 생성하려고합니다. 기본 및 지수 n을 취합니다. 나는이 함수를 생성하고 그 자체로 n 배를 곱하여 내 대답을 얻고 싶다. 첫 번째 (주어진 기본 및 지수 매개 변수, 내 자신의 expt 함수를 만들려고합니다
(define (slow-expt base n)
(local [(define listn (make-list n base))]
(cons (* (- base 1) (first listn))
(slow-expt base (rest listn)))))
내 오류가 * 두 번째 인수가 숫자로 기대하는이지만, 부여해야합니다 : 내 대답을 얻을 수있는 가장 좋은 방법을 목록입니다 만들 생각하지만 몇 가지 문제로 실행 해요 listn). 충고하나요?
인수'n' 일부 정수를 것으로 예상하지만 재귀 호출은 그 위치에서 목록을 전달합니다 . 그러므로 두 번째'(make-list n base)'가 평가되면'n'이 이제리스트이기 때문에 에러를 던질 것입니다. 또한 모든 재귀 함수에는 기본 사례가 필요합니다. 기본 케이스 (들)은 반복되는 작업에 따라 다릅니다. – assefamaru