小编ale*_*lex的帖子

如何将Scheme中的函数应用于另一个函数返回的参数列表?

假设有两个函数,f和v.进一步假设v返回一个长度为n的列表,f期望正好有n个参数.我在Scheme中寻找正确的语法,将f应用于v返回的列表.

如果我使用语法(f (v v-arguments))然后我得到一个错误关于f期望n个参数但只接收一个参数(这是由v返回的列表).

如果我使用语法(f . (v v-arguments)),那么问题是传递给f的参数太多.

我能做的最好(对于f期望两个参数的情况)是这样的:

(let ((output-of-v (v v-arguments)))
  (f (car output-of-v) (cadr output-of-v)))
Run Code Online (Sandbox Code Playgroud)

我相信一定有更好的方法,我会感激任何建议!

scheme function list call

4
推荐指数
1
解决办法
169
查看次数

标签 统计

call ×1

function ×1

list ×1

scheme ×1