因为我刚开始学习 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 ....)。如果您觉得这应该是一个单独的问题,请帮助我使用术语,因为我有点迷茫。