SICP 習題 (1.44)解題總結

SICP 習題1.44 要求我們實現一個平滑函數的過程,和以往一樣,如果你太在意平滑函數的數學定義你就輸了。簡單的辦法就是直奔平滑函數的要求,其實就是給我們一個不清楚細節的函數f,要求我們返回一個過程專門計算(f (+ x dx)) , (f x) , (f (- x dx))的平均值。其中dx是事先定義好的一個很小的數,比如0.001。


這就比較簡單了,直接實現如下:

(define (smooth f)
  (lambda (x) (/ (+ (f (- x dx)) (f x) (f (+ x dx))) 3)))


如果希望對一個過程進行多次平滑處理,可以結合之前的repeat過程多次調用smooth過程,代碼如下:

(define (n-smooth f n)
  ((repeat smooth n) f))


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章