1.12
; The following pattern of numbers is called Pascal’s triangle.
; 1
; 1 1
; 1 2 1
; 1 3 3 1
; 1 4 6 4 1
;
; The numbers at the edge of the triangle are all 1,
; and each number inside the triangle is the sum of
; the two numbers above it.
; Write a procedure that computes elements of Pascal’s triangle
; by means of a recursive process
; Answer
; P(row, col) =>
; if row = col or col = 1 => 1
; else =>P(row - 1, col - 1) + P(row - 1, col)
;
(define (pascal row col)
(cond ((or (= row col) (= col 1)) 1)
(else (+ (pascal (- row 1) (- col 1)) (pascal (- row 1) col))))
)
(pascal 1 1) ; 1
(pascal 2 1) ; 1
(pascal 2 2) ; 1
(pascal 3 2) ; 2
(pascal 4 2) ; 3
(pascal 5 2) ; 4
(pascal 5 3) ; 6