使用列表中的元素作为Racket / PLT Scheme中的参数

时间:2014-10-14 01:51:17

标签: scheme racket

在我无法修改的库中,有一个函数将值列表作为其参数之一。

为了这个问题,我们可以称之为fun。我有一个函数,它返回多个参数作为列表,并想知道如何从列表中提取这些值并将其传递给函数。例如,这里是fun

(fun (list someval someval2 arg1 arg2 arg3 ... etc))

我处理数据的函数会返回类似于(list arg1 arg2 arg3 ... etc)的函数。我怎样才能将我的函数返回的列表内容与somevalsomeval2一起传递给我们?

1 个答案:

答案 0 :(得分:4)

使用list*

(let ([someval (some-func ...)]
      [someval2 [some-func2 ...)]
      [args (my-func ...)])
  (fun (list* someval someval2 args)))

list*接受它的参数并将它们构建成像list这样的列表,但是如果最后一个参数是一个列表,它会将其用作列表的尾部,例如: (list* 1 2 '(3 4 5))'(1 2 3 4 5)。因此,一旦您计算somevalsomeval2以及要传递给fun的参数列表(我在上面的代码中将列表命名为args),您就可以构建使用(list* someval someval2 args)将其列入一个列表,然后将该列表传递到fun