完整的common lisp的學習集合整理如下:
https://github.com/GreyZhang/g_lisp
繼續學習emacs,學習lisp,學習emacs lisp。前面,學習分析到了emacs中的一個common lisp的擴展庫文件,分析完了開篇的註釋,接下來看看代碼。
第一行代碼就又是一個陌生的東西,看起來還得繼續擴充需要了解的文件範疇。接下來,找一下macroexp的代碼。
初次接觸,先了解一下開篇註釋的信息。從上面的描述看,這個文件或者庫(這算是一個庫嗎?我該如何稱呼這樣的文件呢?)的功能是擴展了原來的宏的功能。它包含了一些在lisp代碼中不存在的宏擴展函數,也就是macroexpand-all。這個功能可以吧所有的宏展開成一種形式,而不僅僅是上層的一種形式。
看了這個描述,還是有一些不是很熟悉,有一點弄不明白。但是,似乎有一點是可以清楚的,那就是這個文件的存在會改變很多defmacro的功能或者行爲。
完整的common lisp的學習集合整理如下: