2008-04 << 2008-05 >> 2008-06

2008-05-01 (木)

*Scheme

なんとかLispとかいうソフトで少し勉強したきりだったので,少し実際に書いてみる.

(define (sqrt x)
  (define (tf a pa)
    (if (< (abs (- a pa)) 1E-10) a
    (tf (/ (+ a (/ x a)) 2) a)))
  (tf (/ (+ x 1) 2) 0))
(sqrt 10.0)

こんなんとか.

(define (pi)
  (define (tf a z s)
    (if (> z 10000000) a
    (tf (+ a (* s (/ 1 z))) (+ 2 z) (- s))))
  (* 4 (tf 0.0 1 1)))
(pi)

これはさすがに遅い….

2008-04 << 2008-05 >> 2008-06