如何使用适用于Racket中的多个关键字func?

时间:2012-12-09 03:28:17

标签: racket

我遇到了这样一个问题:

我想使用(发送my-list-box设置数据)来刷新运行时列表框%的数据。但是我 不能这样写:

   (apply
     send my-list-box set
     (map ....))

这是无效的。但我知道max func可以做到这一点:

(apply
  max
  (map ...))

唯一的区别是“发送my-list-box set”有多个关键字,而不是一个关键字 func就像最大

如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

使用send/apply将多个参数应用于send

(send/apply my-list-box set (map ...))

(apply send my-list-box set (map ...))(您尝试使用的)只是无效,因为send是一种语法(宏),而不是因为前面有多个参数。例如,这有效:

(apply + 1 2 3 '(4 5 6))