2017-10-12 164 views

回答

5

In Common Lisp,(some-value)是一个单一元素的列表,由some-value给出。

列表的经典图形表示示出了在作用一个单一的值列表是一个指针的“缺点”(对)到some-valuenil

使得流汗它的car产生some-value,而cdr产生nil

那么,这个s表达式是什么意思:((x))?如果在第一个示例中用(x)代替some-value,则可以得到这个结果。也就是说,这不是一个“多支架列表”,而只是一个单一元素列表,它本身就是一个单一元素的列表(换句话说,一个列表中的车是单元素列表)。这样就可以图形展示为中下图:

所以,这一次得到x你必须使用car两次,写(car (car list))(其实这可以缩写在共Lisp的有(caar list))(看到reference)。

我留给你完成练习,得出对应于(((x)))图,并找到如何从这个名单中提取x

+0

你如何创建这个漂亮的图形? – sds

+0

@sds,我在我的Mac上使用旧版本的OmniGraffle。 – Renzo

0

这样的事情,比如:

(defun first-atom (c) 
    (if (consp c) 
    (first-atom (first c)) 
    c))) 

这是稍有不当,因为(first-atom 1)是不是一个错误,它可能应该是:它需要一个缺点它调用递归当地FN做的工作外检查。你有点想法。


对不起,可能是拙劣的缩进:很难找到一个电话。

相关问题