可扩展语言
lisp很灵活,很强大,blablabla
函数
可以引入累积器,将递归调用搞成尾递归,编译器优化成迭代
特别小的函数可考虑inline化,尽量避免显式调用compile
函数式编程
在可能的情况下,尽量避免副作用
把函数写成每次调用只修改它自身拥有的对象
实用函数
抽象,简洁,好的程序
一些自定义小工具,注意看group , flatten,prune的实现
> (duplicate 'a '(a b c a d))
(A D)
会返回第2个a后面的那些,方便链式调用;而非TRUE/FALSE,算个习惯用法吧
rmapcar可以递归处理元素
> (rmapcar #'princ '(1 2 (3 4 (5) 6) 7 (8 9)))
123456789
(1 2 (3 4 (5) 6) 7 (8 9))
函数作为返回值
没有评论:
发表评论