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

sim*_*one 2 racket

我遇到这样一个问题:

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

   (apply
     send my-list-box set
     (map ....))
Run Code Online (Sandbox Code Playgroud)

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

(apply
  max
  (map ...))
Run Code Online (Sandbox Code Playgroud)

唯一的区别是"发送my-list-box set"有多个关键字,而不是像max这样的单个关键字func.

怎么解决这个?

Chr*_*ung 5

使用send/apply多个论点也适用于send:

(send/apply my-list-box set (map ...))
Run Code Online (Sandbox Code Playgroud)

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

(apply + 1 2 3 '(4 5 6))
Run Code Online (Sandbox Code Playgroud)