2.8 如何阅读Lisp
之前章节我们定义的pseudo-member函数在结尾处有五个括号。如果你遇到了更加复杂的函数,它的结尾可能有七个甚至八个括号。刚刚接触学习Lisp语言的人看到这么多括号可能会觉得很茫然,也会因为看不懂而沮丧。“我一个萌新怎么可能看得懂有这么多复杂结构的代码?我自己怎么可能写的出来?我怎么才能分辨出来那个括号对应的是哪个?”
这个答案的回答是,你并不需要弄清楚那个括号对应的是那个。真的Lisp程序员在读程序或者写程序时,关注的是缩进的对应,而不是括号。(译者注:参照python)当他们写程序时,他们根本没有考虑括号的对应,这项任务是由文本编辑器完成的,他们让文本编辑器显示一个左括号是跟那个右括号对应的。任何一个好的文本编辑器,特别是那些有针对Lisp风格的文本编辑器,都应该能够帮程序员进行括号匹配。在这样的编辑器里,当你打出了一个左括号,编辑器会自动为你打出来右边那个。如果你的编辑器没有这个功能,老兄,现在先停下一切,然后弄到一个有这样功能的编辑器。这非常非常重要,因为如果你没有这样功能的编辑器,你根本不可能写出来Lisp代码。
有了一个好的编辑器,括号配对问题应该就不再是你编程时的一个问题了。又因为对于Lisp编程,大家对于程序缩进有一个普遍的规范(如python一样),你读代码也不再是一个问题了。因为人人都是按照这个规范来编程的,你读代码是注意缩进就好,不用再在意那些括号了。