【问题标题】:scheme higher order func方案高阶函数
【发布时间】:2013-04-15 01:01:54
【问题描述】:

给定一个函数的骨架:

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

【问题讨论】:

    标签: hash lisp scheme


    【解决方案1】:

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

    在您的情况下,您有 key(flip(w)),这在 Scheme 领域没有意义。

    所有内容都用括号括起来

    你想要(key (flip w))

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-29
      • 2020-11-19
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      相关资源
      最近更新 更多