天天看点

SICP 1.11-1.13

习题1.11

1.递归算法

(define (f n)
        (if (< n )
            n
            (+ (f (- n ))
               (* 
                  (f (- n )))
               (* 
                  (f (- n ))))))
           

2.迭代算法

(define (f n)
  (define (f-iter n n n step-count)
     (if (< step-count )
         n
         (f-iter n
                 n
                 (+ (*  n) (*  n) n)
                 (- step-count ))))
  (if (< n )
      n
      (f-iter    (- n )))) ;此处已经进行了前3次运算,所以减3
           

习题1.12

(define (pascal row col)
  (cond ((or (< col)
             (< row)))
        ((or (= col)
             (= row col)
             (< row)))
        (else (+ (pascal (- row) (- col))
                 (pascal (- row) col)))))
           

习题1.13

继续阅读