0

给定一个函数的骨架:

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

1 回答 1

6

您收到错误是因为在 Scheme 中(w)期望w是一个函数。但w只是一个符号列表。

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

一切都被括号包围

你要(key (flip w))

记住 lisp 的口头禅:(function args ...)

于 2013-04-15T01:21:19.223 回答