完整的common lisp的学习集合整理如下:
https://github.com/GreyZhang/g_lisp
这次看一下上面的函数load-file,先查看一下emacs内置的帮助信息:
这个函数看起来是一个lisp函数,找一下相应相应的定义如下:
这个代码我暂时是看不懂的,不过看起来这个实现是很简单的,用到的read-file-name函数会是更加基础的函数?看起来,emacs lisp的很多内置函数其实都是基础的lisp功能实现而已。
再次看看官方文档中的介绍:
这里有另一个不同的描述,把这个功能定义为了一个command,而不是一个function。为什么会有这样的差异呢?我从上面的代码中看到了一个interactive的关键词,是不是因为这个关键词把这个函数变成了一个交互式的函数,因此这个最终被归属为一个命令呢?
在加载文件的时候,如果没有指明目录,默认从当前的目录中寻找。从操作行为上考虑,或许这个是可以直接M-x之后输入,然后选择操作文件的。
做几个测试:
上面的返回为t,这个似乎文档以及帮助中都没有提到。
接下来,做一下命令式的测试:
确实是可以在这里进行交互式操作,接下来加载test.el。
两种调用方式,没想到还有不同的提示效果。按照之前接触的一点common lisp的经验,这个函数或许与其中的load函数类似。而这个功能是把相应的文件中的信息加载到lisp环境中,后面就可以直接调用其中的功能。
其他的lisp相关的学习笔记汇总,可以参考如下链接:
https://github.com/GreyZhang/g_lisp