方案高阶函数

时间:2013-04-15 01:01:54

标签: hash lisp scheme

给出函数的骨架:

(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))))

key(flip(w))取一个列表w并返回一个整数。

并致电:

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

我一直收到这个错误:

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

1 个答案:

答案 0 :(得分:6)

您收到错误,因为在方案(w)中,w期望w成为一个函数。但key(flip(w))只是一个符号列表。

在你的情况下,你有(key (flip w))在Scheme土地上没有意义。

所有内容都被括号括起来

您想要(function args ...)

请记住lisp口头禅:{{1}}