practice:sicp再会

もういちど、最初から。
読むたびに含蓄の深い言葉たちにうなってしまう。

(define (pascal a b)
  (cond
       ((or (= b 1) (= a b) (<= a 2)) 1)
       (else
         (+
            (pascal (- a 1) (- b 1))
            (pascal (- a 1) (- b 0))
          )
       )
   )
  )
;テスト
(define (test)
(begin
(display "proc:1-1:") (display (pascal 1 1)) (newline)
(display "proc:2-1:") (display (pascal 2 1)) (newline)
(display "proc:2-1:") (display (pascal 2 2)) (newline)
(display "proc:3-1:") (display (pascal 3 1)) (newline)
(display "proc:3-2:") (display (pascal 3 2)) (newline)
(display "proc:3-3:") (display (pascal 3 3)) (newline)
(display "proc:4-1:") (display (pascal 4 1)) (newline)
(display "proc:4-2:") (display (pascal 4 2)) (newline)
(display "proc:4-3:") (display (pascal 4 3)) (newline)
(display "proc:4-4:") (display (pascal 4 4)) (newline)
(display "proc:5-1:") (display (pascal 5 1)) (newline)
(display "proc:5-2:") (display (pascal 5 2)) (newline)
(display "proc:5-3:") (display (pascal 5 3)) (newline)
(display "proc:5-4:") (display (pascal 5 4)) (newline)
(display "proc:5-5:") (display (pascal 5 5)) (newline)
)
)
(pascal 8 5)
(test)

いと楽し。