【发布时间】:2015-07-08 08:45:12
【问题描述】:
我有一个返回类似这样的函数:
'(1 4 2 8)
我想对其应用以下类型的函数:
(name &rest)
例如:
(max '(1 4 2 8))
产生错误,但是:
(max 1 4 2 8)
没有。 所以我必须“取消列出”该列表。我该怎么做呢?
【问题讨论】:
标签: lisp common-lisp
我有一个返回类似这样的函数:
'(1 4 2 8)
我想对其应用以下类型的函数:
(name &rest)
例如:
(max '(1 4 2 8))
产生错误,但是:
(max 1 4 2 8)
没有。 所以我必须“取消列出”该列表。我该怎么做呢?
【问题讨论】:
标签: lisp common-lisp
apply 的形式是传统的方式:
(apply 'max '(1 2 3 4))
; => 4
【讨论】:
(reduce 'max '(1 2 3 4)) 会更好。将函数应用于任意 arglist 是很危险的,因为 arglist 的长度存在实现限制。