【问题标题】:Why is caddr[(A B C)] = C?为什么 caddr[(A B C)] = C?
【发布时间】:2012-06-09 09:54:45
【问题描述】:

理想情况下在 LISP 中:

caddr[(A B C)] = car[cdr[cdr[(A B C)]]] = car[cdr[(B C)]] = car[C] = Undefined.

但是书上说答案是C。谁能解释一下?

非常感谢。

【问题讨论】:

    标签: lisp cons cdr


    【解决方案1】:

    您的错误是 cdr[(B C)] 是列表 (C),而不是原子 C。

    那么 car[(C)] 就是 C.

    【讨论】:

      【解决方案2】:

      (cdr '(b c)) 是列表 (c),而不是原子 c,所以表达式变成 (car '(c)) 而不是 (car c)

      ? (cdr '(b c))
      (C)
      
      ? (car '(c))
      C
      

      【讨论】:

        猜你喜欢
        • 2017-01-11
        • 1970-01-01
        • 2014-01-15
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        • 2011-05-30
        • 2015-11-20
        • 2020-12-18
        相关资源
        最近更新 更多