首页 > 代码库 > SICP 1.12

SICP 1.12

解:

(define (pascal n)
  (define (get n i)
    (cond ((<= i 1) 1)
          ((>= i n) 1)
          (else (+ (get (- n 1) (- i 1))
                   (get (- n 1) i)))))
  (define (iter i n)
    (if (<= i n)
        (and (print (get n i))
             (print " ")
             (iter (+ i 1) n))
        #f))
  (define (recurse n)
    (if (> n 0)
        (recurse (- n 1))
        #f)
    (iter 1 n)
    (newline))
  (recurse n))


需要注意递归过程和递归计算过程概念上的区别。