经过长达三年多的lisp反复学习及实践,掌握了lisp的语法,常用api,win32 api /c++ dll 调用接口FFI api ,IO,正则库cl-ppcre,异常处理(restart-case,handler-bind,handler-case等),代码组织结构package,对象系统CLOS 等,可以根据业务需要熟练编写脚本工具,是目前日常工作中主要使用的脚本之一(另一个是perl)。
与perl 相比,lisp有着比较明显的优点和缺点,感觉比较深刻的是clisp打开即可直接REPL编码,结果显而易见,最常用法为数据处理或直接生成C#或sql代码,然后通过剪切板操作,非常直接的就可以将处理好的数据复制到其它环境(VS或notepad++等)。缺点是相对于perl,第三方库比较少。比较复杂的数据文件格式处理(比如多个excel,dbf文件处理,网络数据爬取等),往往无能为力。与之相反的是,perl则有相当庞大的cpan库,基本上所有的库可以直接用,相当方便。
从本人的实践经验来看,lisp的代码即数据,数据即代码特性,使用非常少,反而 为lisp社区所诟病的loop,format等特性使用起来更为方便;另外,lisp的动态绑定特性,是一个不错的特性;可以导出可执行exe程序特性也相当棒,毕竟不是所有人都能使用lisp环境来运行脚本,相比于双击打开执行来说,它太复杂了。