1
我無法使用映射函數返回給定數字集的偏差平方的列表。我寫了我的平方偏差函數如下,但我不知道如何映射這個。有沒有辦法糾正我的平方偏差函數,以便它不會將「l」作爲參數?如果我寫這樣的功能,那麼我會知道如何映射它。計劃中的映射函數練習
(define (square-of-deviation l)
(define (square-of-deviation-h n)
(if (null? n)
'()
(cons (expt (- (car n) (average l)) 2)
(square-of-deviation-h (cdr n)))))
(square-of-deviation-h l))
我寫的,我可以用它來映射功能,但它要求我通過相同的列表兩次當我測試我的代碼:
(define (square-of-deviation-2 l)
(lambda (x) (expt (- x (average l)) 2)))
(map (square-of-deviation-2 '(1 2 3 4 5)) '(1 2 3 4 5))
我應該在這裏改變我的地圖功能?我寫如下:
(define (map f items)
(if (null? items)
'()
(cons (f (car items))
(map f (cdr items)))))
我不喜歡在這樣的例子中使用映射函數。我的頂級功能按預期工作,但我從中學習的書是要求我使用地圖功能編寫此書。 –