Hatena::Groupcsnagoya-sicp

gabuchanの日記

2008-10-27

問題1.12 パスカルの三角形

| 17:09

(define (triangle x y)
  (cond [(= x 1) 1]
	[(= x y) 1]
	[else (+ (triangle (- x 1) (- y 1))
		 (triangle x (- y 1)))]))

(define (view-triangle row)
  (define (view-col x y)
    (if (not (> x y))
	(begin
	  (display (triangle x y))
	  (display " ")
	  (view-col (+ x 1) y))
	(display "\n")))
  (define (view-row y)
    (if (not (> y row))
	(begin 
	  (view-col 1 y)
	  (view-row (+ y 1)))))
  (view-row 1))
gosh> (view-triangle 5)
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
#<undef>

センタリングはいつかやるかも。

beginに対して上級者の人はどう思ってるのか聞きたい。