“剪接”```x'in to函数调用

问题描述 投票:0回答:1
或列表的结果作为函数调用的参数? 例如(想象的语法):

(list 0 (values 1 2) (values 3 4) 5)

将返回
(0 1 2 3 4 5)
apply
函数不是很方便,因为它仅“拼接”其最后一个参数。
    

apply
scheme guile
1个回答
0
投票
,例如,构建所需的列表,假设

(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))
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.