カウンター
ホントにまだまだ基本的なところですが、少しでもわかってくるとなかなかSchemeも面白いですね。
(define (factorial x) (if (> x 0) (* x (factorial (- x 1))) 1)) (define (log-factorial x) (log (factorial x))) (define (count-down f x) (if (> x 0) (begin (display (f x)) (newline) (count-down f (- x 1))) 1)) (count-down factorial 10) 3628800 362880 40320 5040 720 120 24 6 2 1 1 (count-down log-factorial 10) 15.1044125730755 12.8018274800815 10.6046029027453 8.52516136106541 6.5792512120101 4.78749174278205 3.17805383034795 1.79175946922805 0.693147180559945 0.0 1 (count-down (lambda (x) (* x x)) 10) 100 81 64 49 36 25 16 9 4 1 1
うーん。楽しい。そろそろ寝ないと…。