你的例子没有多大意义。第二个片段只是一个参数列表,在某些时候你必须传递一个真正的过程。“调用没有名称的函数”的一种替代方法是使用lambda表达式,这是一个匿名过程......例如,这个:
(define (square x)
(* x x))
(square 4)
=> 16
Run Code Online (Sandbox Code Playgroud)
相当于:
((lambda (x) (* x x)) 4) ; look ma, no name!
=> 16
Run Code Online (Sandbox Code Playgroud)
您甚至可以根据lambdas定义递归过程,请阅读有关 Y 组合器的更多详细信息。
编辑
阅读评论后 - 如果您只需要将参数列表传递给函数,请使用以下命令:
(apply function-name list-of-parameters)
Run Code Online (Sandbox Code Playgroud)