zoukankan      html  css  js  c++  java
  • Common Lisp中的apply和append

    append

    Lisp中的append就是把多个list合并成一个list。如:

    > (append '(a) '(b) '(c d))
    (A B C D)

    注意:

    1.append后的每一个cell都必须是list,下面这个语句则会报错

    > (append 'a 'b)
    bad syntax for array: APPEND
    

    2.同时,append不是嵌套的,如:

    > (append '((a b) (c d)) '(e))
    ((A B) (C D) E)
    


    apply

    前面提到append不能对嵌套的执行合并,如:

    > append '((a b) (c d))
    ((A B) (C D))

    这个时候,可以使用apply

    > (apply #'append '((a b) (c d)))
    (A B C D)

    apply后紧跟的是一个函数,上面的例子中即为append。apply将append后面的list中的整个list中的每个元素作为append的参数。上面的例子就等价于:

    > (append '(a b) '(c d))

    当apply紧跟的函数后面多于一个cell时,等价于:

    > (append function 'p1 'p2 'p3) == (append function (list* 'p1 'p2 'p3))


  • 相关阅读:
    Web 服务器配置
    Web 浏览
    C++ Web 编程
    C++ 多线程
    C++ 信号处理
    C++ 预处理器
    C++ 模板
    C++ 命名空间
    C++ 动态内存
    C++ 异常处理
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206836.html
Copyright © 2011-2022 走看看