美文网首页
[译] Lisp之根源(十三)

[译] Lisp之根源(十三)

作者: 日更专用小马甲 | 来源:发表于2019-05-16 23:09 被阅读0次

    假设我们想要定义一个函数(sub x y z),它代表的含义是:以一个表达式x,一个原子y,一个列表z为参数。并返回一个类似z的列表,其中所有出现元素y的地方都用表达式x代替。

    (subst 'm 'b '(a b (a b c) d))
    (a m (a m c) d)
    

    我们可以这样定义这个函数:

    (label subst (lambda (x y x)
        (cond ((atom z)
            (cond ((eq z y) x)
                ('t z)))
        ('t (cons (subst x y (car z))
             (subst x y (cdr z)))))))
    

    我们会把f = (label f (lambda (p1 ... pn) e))简记为(defun f (p1 ... pn) e),因此:

    相关文章

      网友评论

          本文标题:[译] Lisp之根源(十三)

          本文链接:https://www.haomeiwen.com/subject/arlgaqtx.html