因为我刚开始学习 LFE,所以我在阅读章节时一直在尝试书中的一些示例(SICP,LFE 版本)。在第 76 页的练习 1.4 中,我看到了表达式#'+/2
和#'-/2
。
所以我进入 REPL(funcall #'+/2 1 2)
并得到(如预期的那样)3
。同样(funcall #'+/1 1)
给出1
. 但是(funcall #'+/3 1 2 3)
会报错。为什么是这样?我当然可以这样做,(funcall #'+/2 1 (funcall #' +/2 2 3))
但我真的很想了解是否以及为什么#'+/3
无效,因为它似乎是。
最后,有点切题,如果我正在实现自己的函数FUNC
,我将如何实现以这种方式接受任意数量参数的能力(funcall #'FUNC/arity ....
)。如果您觉得这应该是一个单独的问题,请帮助我使用术语,因为我有点迷茫。