我正在寻找类似于JavaScript的arguments
数组的东西:
function parent(){
child.apply(this.arguments);
}
我知道使用点符号来表示可变参数的长度,也知道Scheme语言中的apply
函数。
但是这种方式似乎无法工作,因为点符号被视为第一个参数:
(define (parent .)
(list .))
(parent 1 3 4 6 7)
Error: bad argument count - received 5 but expected 1: #<procedure (array arg-list)>
这个方法可行但并不理想。我希望能够在不定义参数列表的情况下调用函数:
(define (parent args-list)
(apply list args-list))
(parent 1 3 4 6 7)
Error: bad argument count - received 5 but expected 1: #<procedure (array args-list)>
(parent `(1 3 4 6 7))
(1 3 4 6 7)