Schemeな日々

Schemeの勉強する前に使っている処理系について少しは知っておこうとbiglooのマニュアルをちょっと読む。native(via C)/jvm/.NET向けにバイナリを出力出来るみたい。早速exeを作ってみると、確かに出来た。これはこれで楽しいかも。ただ、.NET向けのアセンブリ出力でエラーなってしまう。まだ不完全なのかな。

今日の成果。

(module cubic-root (main main))

(define (cbrt-iter guess x)
  (if (good-enough? guess x)
    guess
    (cbrt-iter (improve guess x) x)))

(define (good-enough? guess x)
  (< (abs (- (improve guess x) guess)) 0.00000000000001))

(define (improve guess x)
  (/ (+ (/ x (* guess guess)) (* 2 guess)) 3))

(define (cbrt x)
  (cbrt-iter 1.0 x))

(define (main argv)
  (if (< (length argv) 2) (display "usage: cbrt.scm num\n")
    (display (cbrt (string->number (cadr argv))))))

うーんうーん、まだまだ先は遠い・・・(^^;