##Schemeで関数に代入した値を使う方法
lambda式で表される関数f(x)と2個の初期値を用いて、f(x)=0の根を探すプログラムを、二分法を利用して記述したいです。
プログラムの中で、f(x)に初期値を代入して得られる値を使いたいのですが、どう記述したら良いのかが分かりません。
初心者のため、他にも誤りがありましたら指摘して頂けると助かります。
Macbook AirでDr.racketを使用しています。
##記述したプログラム
(define eps 1.e-10) (define (enough x) (< x eps)) (define (middle x y) (/ (+ x y) 2)) (define (half-interval-method x0 x1 f) (let ((a (f x0)) (b (f x1))) (cond ((and (or (and (< a 0) (< 0 b)) (and (< 0 a) (< b 0))) (enough (abs (- x0 x1)))) (middle x0 x1)) ((enough (f (middle x0 x1))) (middle x0 x1)) (else (half-interval-method (middle x0 x1) x1 f)))))
##エラーメッセージ
application: not a procedure; expected a procedure that can be applied to arguments given: 2 arguments...:
##試したこと
set!も使ってみましたが、以下のエラーが出ました。
<: contract violation expected: real? given: #<void> argument position: 1st other arguments...:
質問中のエラーというのは書いたプログラムをどのように使ったときに出たエラーですか?