1.利用返回值而不是反作用来写程序(反作用包含破坏性修改对象以及对变量赋值).编程
2.须要返回多个值请使用multiple-value-bind和values的组合方式.安全
3.函数式编程须要思考你要什么,而不是要怎么作.函数式编程
4.一个给定的调用能够安全的修改它惟一拥有的东西(函数拥有被调用函数返回的对象,但不拥有做为参数传递过来的对象),而且不能和不遵照规则的函数共享对象.函数
5.函数不能返回任何不能安全修改的对象(避免写返回包含引用对象的函数,宏中包含引用对象是例外,宏的每次展开都是一个新的引用对象).spa
4的后半条和5主要是针对全局空间,lisp里的引用对象存储的位置应该和全局变量在一个区域内(相似c中的可修改全局数据区域).对象