百科问答小站 logo
百科问答小站 font logo



对 Lisp 新手来说,学习哪种方言、使用哪些参考书和开发软件更适合? 第1页

  

user avatar   jiangxinnju 网友的相关建议: 
      

不好意思,经常改动影响大家的timeline,我只是想让这个答案更完美一些……下面是正文

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Common Lisp和Scheme是Lisp家族的两大主要方言,通用性比较好,ELisp和AutoLisp只能在特定的环境下使用,所以不推荐。


如果你只是想学习FP的思想,可以直接学习Scheme,FP的思想都有了,还比较简单,只不过库不太完备。如果追求CL的强大可以看看Racket,是PTL Scheme的进化版。

IDE推荐:

  • DrRacket

书籍推荐:

  • Teach Yourself Scheme Mit Press
  • Simply Scheme MIT Press
  • LISP in small pieces
  • r5rs

基本都有电子版,第三个Lisp in small pieces不能作为入门教程,它默认你已经学会了Scheme,并且着重讲如何实现一个Scheme的解释器或者编译器以及一些比较深层次的概念,不太好懂但是很开阔思路,而且经常将Scheme和CL进行对比,使你能够触类旁通。最后一个是Scheme的规范,也不适合作为入门教程,更适合作为reference,虽然它比较薄只有几十页。如果英文不太好,可以看看网上有没有中文版。


不过相对来说我还是推荐Common Lisp,原因三言两语也说不清,比较正统的Lisp,工业化程度高,如果你看过《黑客与画家》应该有所了解,但是缺点是学习难度大,虽然大家都说CL久经历练,但是糟粕也不少,这些别人说了没用,只有你学完了之后做两个项目才有体会。不过总起来说还是一门非常伟大的语言。首先由Lisp引进的编程思想包括if/then/else控制结构、递归函数调用、动态内存分配、垃圾收集、高阶函数、词法闭包、交互式编程、增量编译以及动态类型……

IDE推荐:

  • Lisp in a box
  • LispWorks(适合高薪阶层)

书籍推荐:

  • Practical Common Lisp
  • ANSI Common Lisp

我当初就是利用这两本书学习的,不过在学习过程中主要还参考了

  • Lisp Quick Reference
  • Common Lisp The Language

第一本参考用公式的方式把基本用法列出,基本上覆盖了整个ANSI Common Lisp标准,但是可能比较晦涩,不过习惯了就好了。第二本就不说了,类似牛津词典,一千多页,不懂的查查就行了,一般人看不下来,看下来也没啥意思。

当你读过这些书之后,基本上已经对Lisp有一个较深的了解,这时你可以自己写个项目练练手,或者直接到github上clone一个。另外还有些书不错,但是因为你已经有了比较扎实的基础,你可以随便看看,没必要像看课本那么仔细:

  • On Lisp(与Common Lisp The Language同一作者,相当于CLTL的进阶版)
  • Common Lisp A Gentle Introduction to Symbolic Computation
  • Land of Lisp(好多漫画!)
  • Successful Lisp
  • Tutorial on Good Lisp Programming Style
  • The Art of the Metaobject Protocol

这些书除了最后两本我都看得不是很仔细,因为很多和Practical Common Lisp、On Lisp有重复,所以我只是看一些有特点的部分。倒数第二本讲的是如何养成良好的Lisp编程风格,你可以当成散文来读。最后一本比较深,我也没有看完,主要讲的是CLOS相关的东西,可以用来开阔思路。



其实如果你想学习CL这门语言,这些足足足足足足够了,但是你还是觉得很无聊,好吧,再推荐两篇文章:

  • The Roots of Lisp
  • Recursive Functions of Symbolic Expressions and Their Computation by Machine Part I

建议把这两篇文章打印出来,一行行的看!一是因为都比较短,花不了你多少钱,二是因为都值得反复推敲,不是看一遍就扔了。第一篇文章是Paul Graham写的,就是那个ANSI Common Lisp、On Lisp以及Hackers & Painters的作者,主要内容是对第二篇论文的总结概括,探讨了Lisp的根基理论,难度较小,一共就十几页,看完了会有一些新的收获,这些是你看其它语言教程看不来的。第二篇我就不说了,Lisp的作者写的,好好看下,想想作者是如何设计出这样一门伟大的语言的,别说你数学不好,你不会学呀,再说这里用的数学也不难。


另外我不太清楚你学习Lisp的目的,上面说的可能比较适合一般的程序员,如果你是AI研究者你可以直接看下面的两本:


  • Paradigms of Artificial Intelligence Programming,Case Studies in Common Lisp
  • The Elements Of Artificial Intelligence(An Introduction Using Lisp)

另外经常有初学者希望我推荐一些适合Lisp学习的网站,我就把我经常用的网站贴一下:




如果大家想看到持续更新的资源,可以在我的github上找“Lisp学习之路.md”


jiangxincode/cnblogs: 一些我平时会发表到cnblogs的文章

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

好了,我把我知道的都交代了,希望你们别到处问这个问那个,不踏实学习!老老实实看书才是王道呀!!!!

另外只看不点赞是什么心态呀!!!!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




  

相关话题

  Gradle 比 Maven 好为什么用的人少? 
  柯里化对函数式编程有何意义? 
  如果现在的计算机是 lisp machine 这种的话... 会有什么不同? 
  如果现在的计算机是 lisp machine 这种的话... 会有什么不同? 
  你是怎么入的 Haskell/Scala/Scheme/OCaml这些函数式编程语言的坑的? 
  你对你认为比较漂亮的编程语言的语法有什么理解? 
  互联网公司,要求开发人员统一操作系统和开发工具,这可能是基于什么想法? 
  如果现在的计算机是 lisp machine 这种的话... 会有什么不同? 
  为什么著名的轮子很少有用 Lisp 写的? 
  互联网公司,要求开发人员统一操作系统和开发工具,这可能是基于什么想法? 

前一个讨论
物理专业的学生如何看待机器学习和大数据这些方向呢?
下一个讨论
武则天,叶卡捷琳娜二世和伊丽莎白一世哪个最厉害?





© 2024-12-18 - tinynew.org. All Rights Reserved.
© 2024-12-18 - tinynew.org. 保留所有权利