【问题标题】:Unlist a list - common lisp [duplicate]取消列出列表-常见的lisp [重复]
【发布时间】: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】:

    apply 的形式是传统的方式:

    (apply 'max '(1 2 3 4))
    ; => 4
    

    【讨论】:

    • 天哪,我知道这一点。哎呀。
    • @SpenserTruex 无害。 'unlist' 这个词很好,所以应该保留在这里,但作为重复项关闭
    • 我可能需要学会不要在凌晨 2 点提出 stackoverflow 问题
    • 但是,在这种情况下,(reduce 'max '(1 2 3 4)) 会更好。将函数应用于任意 arglist 是很危险的,因为 arglist 的长度存在实现限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    相关资源
    最近更新 更多