2014年4月2日 星期三

LISP

 (fast 2 * n 1)  ==> 2^n
 (fast 2 + n 0)  ==> 2*n

(define (fast a op n unit)
 (define (square x) (op x x))
 (define (iter a n result)
         (cond ((= n 0) result)
               ((even? n) (iter (square a) (/ n 2) result))
               (else (iter a (- n 1) (op a result)))))
(iter a n unit))

4 則留言:

  1. 呵呵~~被抓到了!?

    回覆刪除
  2. 其實老師提示滿多的.... (偷偷檢查有沒有寫錯XD)

    回覆刪除
  3. 現在的作業比較難的感覺....
    為什麼要設unit?
    看迴圈好痛苦喔>"<

    回覆刪除