221_emacs lisp反引号的作用

完整的common lisp的学习集合整理如下:

    https://github.com/GreyZhang/g_lisp

    继续分析spacemacs的配置:

    感觉上面的这段代码看着有点蒙圈,尤其是73行突然之间冒出了一个反引号。查看elisp的文档,介绍如下:

    从描述看,这个是一个增加灵活度的小彩蛋性质的功能。这个功能,还得配合逗号操作符来使用。在梳理这个功能之前,需要先看一下引号的作用。

    单引号,本来其实是一个函数,只是使用的频率特别高才演化出来一个特殊的单引号的符号。这是程序中的一种引用方式去包含常量以及列表而不去对对象求值。

    按照文档,做一下测试:

    引用这个对象,但是不进行求职。获取的是原始的状态。以下是同样效果的代码:

    二次引用。

    多次引用。

    而从前面反引号的描述文档的时候,看得出这个反引号更加灵活,因为我们可以指定部分甚至全部的求值。

    按照文档,做一下测试:

    两种效果一致,全都没有进行求值。

    指定了其中的一个元素求值,自然这个元素本身就是可以进行求值的,否则的话会报错:

    上面报错就是因为of其实是不能够求值的。

    看完这些,我们回头再看一下最先看到的spacemacs的配置代码:

    这部分的功能应该是mapc(待学习)传入了两个参数,其中第一个没有被求值,第二个其实都是求值替换了过的。而第二个参数求值后的效果是一个list,里面是三个字符串形式的目录信息。

    完整的common lisp的学习集合整理如下:

    https://github.com/GreyZhang/g_lisp

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

猜你喜欢

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