将列表传递给仅采用扁平列表的函数的正确方法是什么?
What is the proper way to pass a list to a function taking only a flattened list?
方案中,
函数可以 return 单值 :
(lambda () 5)
或者可以return列出:
(lambda () '(1 2 3))
我的问题是关于作文。
您可以像这样组合函数:
(+ 1 (lambda () 2))
但是,将列表传递给仅采用平面列表作为参数的函数的正确有效方法是什么?
这是我正在尝试做的,但并非特定于 +
函数:
(+ (lambda () '(1 2 3)))
或者干脆
(+ '(1 2 3))
我相信你正在寻找 apply
:
(apply + '(1 2 3))
=> 6
如果你想提供一个lambda
,你必须先调用它,以获得它的值(注意它周围的额外括号):
(apply + ((lambda () '(1 2 3))))
=> 6
方案中, 函数可以 return 单值 :
(lambda () 5)
或者可以return列出:
(lambda () '(1 2 3))
我的问题是关于作文。
您可以像这样组合函数:
(+ 1 (lambda () 2))
但是,将列表传递给仅采用平面列表作为参数的函数的正确有效方法是什么?
这是我正在尝试做的,但并非特定于 +
函数:
(+ (lambda () '(1 2 3)))
或者干脆
(+ '(1 2 3))
我相信你正在寻找 apply
:
(apply + '(1 2 3))
=> 6
如果你想提供一个lambda
,你必须先调用它,以获得它的值(注意它周围的额外括号):
(apply + ((lambda () '(1 2 3))))
=> 6