2013-04-15 36 views
0

給出一個函數的骨架:方案高階FUNC

(define gen-hash-division-method (lambda (size))) 

還有:

(define hash-1 (gen-hash-division-method 701)) 

我有編碼:

(define gen-hash-division-method 
    (lambda (size) 
    (lambda (w) 
    (modulo key(flip(w)) size)))) 

鍵(翻轉(W) )接收一個列表w並返回一個整數。

,並呼籲:

(hash-1 '(h e l l o)) 

我不斷收到此錯誤:

procedure application: expected procedure, given: (h e l l o) (no arguments) 

回答

6

你得到的錯誤,因爲在計劃(w)預計w是一個函數。但w只是一個符號列表。

在你的情況下,你有key(flip(w))這是在計劃土地沒有意義。 (function args ...)

一切都用括號

你想(key (flip w))

記住口齒不清的口頭禪包圍