1.利用返回值而不是反作用來寫程序(反作用包含破壞性修改對象以及對變量賦值).編程
2.須要返回多個值請使用multiple-value-bind和values的組合方式.安全
3.函數式編程須要思考你要什麼,而不是要怎麼作.函數式編程
4.一個給定的調用能夠安全的修改它惟一擁有的東西(函數擁有被調用函數返回的對象,但不擁有做爲參數傳遞過來的對象),而且不能和不遵照規則的函數共享對象.函數
5.函數不能返回任何不能安全修改的對象(避免寫返回包含引用對象的函數,宏中包含引用對象是例外,宏的每次展開都是一個新的引用對象).spa
4的後半條和5主要是針對全局空間,lisp裏的引用對象存儲的位置應該和全局變量在一個區域內(相似c中的可修改全局數據區域).對象