#lang eopl
(define (expo base n )
(cond( (or (= base 1) (= n 0) ) 1)
(else ( (* base (expo(base (- n 1))) ) ) )))
-> (enter! "expo.rkt")
"expo.rkt"> (expo (2 1) )
; application: not a procedure;
; expected a procedure that can be applied to arguments
; given: 2
; [,bt for context]
単純な再帰累乗を作成しようとしていますが、上記のエラーが発生します。コードは自明です。私はラケットプログラミングの初心者です。マニュアルを読んでいますが、エラーが見つかりません。おそらく、関数がプロシージャではなく void を返すため、エラーが表示されますが、void を返す理由がわかりません。1 または計算を返します。助けてください :/