完整的common lisp的学习集合整理如下:
https://github.com/GreyZhang/g_lisp
在分析学习spacemacs配置,看各种资料的时候遇到了一些障碍。看起来需要先停下来去补充一些基础的功能知识。这次需要增补的有两个函数,分别是car和cdr。这两个函数其实最初我接触emacs的时候就简单看过,还是从专门买的一本emacs lisp的教程中看的,但是一点都没学会。
先看看两个函数内置的帮助信息:
两个函数都是C代码实现的,应该术语基础类的功能。两个帮助信息看着偶读让我觉得费解,car和cdr到底是啥意思啊?
通过文档,没有找到合理的解释。网上找到了一个人总结的信息如下:
car是短语'Contents of the Address part of the Register';cdr('could-er')是短语'Contents of the Decrement part of the Register'。再次试试我蹩脚的英语翻译能力,car的意思应该是寄存器地址部分的内容,而cdr则是寄存器减少信息后的内容。接下来,看看elisp的文档:
结合文档以及代码的运行结果,CAR应该是获取列表的第一个元素,如果列表是空的则返回nil。而cdr返回的是列表从第二个元素开始一直到最后的内容。
做几个测试:
Emacs就是基于一堆类似这样的功能而构建起来的,单从这个角度考虑这个东西的信息就是相当不容易的。现在,我学习现成的东西都这么费劲,当初RMS是怎么把这么一个东西做出来的呢?
完整的common lisp的学习集合整理如下:
https://github.com/GreyZhang/g_lisp