読書会 (5)

相当へろへろです。一旦下書きしたんですが、内容微妙なので破棄。
以下なナニをでっち上げて

(define (fib-iter a b p q count)
  (cond ((= count 0) b)
	(else
	 (fib-iter (+ (* b q) (* a q) (* a p))
		   (+ (* b p) (* a q))
		   p
		   q
		   (- count 1)))))

gosh で評価。

$ gosh
gosh> (add-load-path ".")
("." "/usr/share/gauche/site/lib" "/usr/share/gauche/0.8.13/lib")
gosh> (load "fib-iter-sample")
#t
gosh> (fib-iter 1 0 0 1 0)
0
gosh> (fib-iter 1 0 0 1 1)
1
gosh> (fib-iter 1 0 0 1 2)
1
gosh> (fib-iter 1 0 0 1 3)
2
gosh> (fib-iter 1 0 0 1 4)
3
gosh> (fib-iter 1 0 0 1 5)
5
gosh> 

ふむ。これって単発でも動くのか。当たり前か。なんとなく逆算ってカンジなのは分かるのですが、色々な意味で力尽きてる状態ッス。良イシュウマツを。