(list 0 (values 1 2) (values 3 4) 5)
将返回
(0 1 2 3 4 5)
。
apply
函数不是很方便,因为它仅“拼接”其最后一个参数。
apply
(1 2)
和
(3 4)
是变量,而不是您可以直列的常数:
(define xs '(1 2))
(define ys '(3 4))
(define args `(0 ,@xs ,@ys 5))
然后您可以写
(apply f args)
,与(f 0 1 2 3 4 5)
相同的效果。当然,您不需要args
变量 - 这与写作相同
(apply f `(0 ,@xs ,@ys 5))