221_emacs lisp反引号的作用
完整的common lisp的学习集合整理如下:
https://github.com/GreyZhang/g_lisp
继续分析spacemacs的配置:
感觉上面的这段代码看着有点蒙圈,尤其是73行突然之间冒出了一个反引号。查看elisp的文档,介绍如下:
从描述看,这个是一个增加灵活度的小彩蛋性质的功能。这个功能,还得配合逗号操作符来使用。在梳理这个功能之前,需要先看一下引号的作用。
单引号,本来其实是一个函数,只是使用的频率特别高才演化出来一个特殊的单引号的符号。这是程序中的一种引用方式去包含常量以及列表而不去对对象求值。
按照文档,做一下测试:
引用这个对象,但是不进行求职。获取的是原始的状态。以下是同样效果的代码:
二次引用。
多次引用。
而从前面反引号的描述文档的时候,看得出这个反引号更加灵活,因为我们可以指定部分甚至全部的求值。
按照文档,做一下测试:
两种效果一致,全都没有进行求值。
指定了其中的一个元素求值,自然这个元素本身就是可以进行求值的,否则的话会报错:
上面报错就是因为of其实是不能够求值的。
看完这些,我们回头再看一下最先看到的spacemacs的配置代码:
这部分的功能应该是mapc(待学习)传入了两个参数,其中第一个没有被求值,第二个其实都是求值替换了过的。而第二个参数求值后的效果是一个list,里面是三个字符串形式的目录信息。
完整的common lisp的学习集合整理如下: