不好意思,经常改动影响大家的timeline,我只是想让这个答案更完美一些……下面是正文
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Common Lisp和Scheme是Lisp家族的两大主要方言,通用性比较好,ELisp和AutoLisp只能在特定的环境下使用,所以不推荐。
如果你只是想学习FP的思想,可以直接学习Scheme,FP的思想都有了,还比较简单,只不过库不太完备。如果追求CL的强大可以看看Racket,是PTL Scheme的进化版。
IDE推荐:
书籍推荐:
基本都有电子版,第三个Lisp in small pieces不能作为入门教程,它默认你已经学会了Scheme,并且着重讲如何实现一个Scheme的解释器或者编译器以及一些比较深层次的概念,不太好懂但是很开阔思路,而且经常将Scheme和CL进行对比,使你能够触类旁通。最后一个是Scheme的规范,也不适合作为入门教程,更适合作为reference,虽然它比较薄只有几十页。如果英文不太好,可以看看网上有没有中文版。
不过相对来说我还是推荐Common Lisp,原因三言两语也说不清,比较正统的Lisp,工业化程度高,如果你看过《黑客与画家》应该有所了解,但是缺点是学习难度大,虽然大家都说CL久经历练,但是糟粕也不少,这些别人说了没用,只有你学完了之后做两个项目才有体会。不过总起来说还是一门非常伟大的语言。首先由Lisp引进的编程思想包括if/then/else控制结构、递归函数调用、动态内存分配、垃圾收集、高阶函数、词法闭包、交互式编程、增量编译以及动态类型……
IDE推荐:
书籍推荐:
我当初就是利用这两本书学习的,不过在学习过程中主要还参考了
第一本参考用公式的方式把基本用法列出,基本上覆盖了整个ANSI Common Lisp标准,但是可能比较晦涩,不过习惯了就好了。第二本就不说了,类似牛津词典,一千多页,不懂的查查就行了,一般人看不下来,看下来也没啥意思。
当你读过这些书之后,基本上已经对Lisp有一个较深的了解,这时你可以自己写个项目练练手,或者直接到github上clone一个。另外还有些书不错,但是因为你已经有了比较扎实的基础,你可以随便看看,没必要像看课本那么仔细:
这些书除了最后两本我都看得不是很仔细,因为很多和Practical Common Lisp、On Lisp有重复,所以我只是看一些有特点的部分。倒数第二本讲的是如何养成良好的Lisp编程风格,你可以当成散文来读。最后一本比较深,我也没有看完,主要讲的是CLOS相关的东西,可以用来开阔思路。
其实如果你想学习CL这门语言,这些足足足足足足够了,但是你还是觉得很无聊,好吧,再推荐两篇文章:
建议把这两篇文章打印出来,一行行的看!一是因为都比较短,花不了你多少钱,二是因为都值得反复推敲,不是看一遍就扔了。第一篇文章是Paul Graham写的,就是那个ANSI Common Lisp、On Lisp以及Hackers & Painters的作者,主要内容是对第二篇论文的总结概括,探讨了Lisp的根基理论,难度较小,一共就十几页,看完了会有一些新的收获,这些是你看其它语言教程看不来的。第二篇我就不说了,Lisp的作者写的,好好看下,想想作者是如何设计出这样一门伟大的语言的,别说你数学不好,你不会学呀,再说这里用的数学也不难。
另外我不太清楚你学习Lisp的目的,上面说的可能比较适合一般的程序员,如果你是AI研究者你可以直接看下面的两本:
另外经常有初学者希望我推荐一些适合Lisp学习的网站,我就把我经常用的网站贴一下:
如果大家想看到持续更新的资源,可以在我的github上找“Lisp学习之路.md”
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
好了,我把我知道的都交代了,希望你们别到处问这个问那个,不踏实学习!老老实实看书才是王道呀!!!!
另外只看不点赞是什么心态呀!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~