222_emacs lisp car与cdr函数

完整的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

 

发布了812 篇原创文章 · 获赞 163 · 访问量 172万+

猜你喜欢

转载自blog.csdn.net/grey_csdn/article/details/104268483