Appearance
结语
好吧,我承认,我骗了你,读到这里你应该花了不止 30 分钟。相信我,这是我的错,而不是因为你太笨。我之所以说“30 分钟”,是为了让你有信心,有耐心继续下去。既然你看到了这里,那证明我的阴谋成功了。被忽悠的感觉很爽吧?
上面这段话不是我说的,但说得在理——
我是北京大学《软件设计实践》首次开课的助教,谷雨同学。这门课创新性地引入了《Lisp 解释器》作为大作业项目;对于“陈腐”的北大教学来说,这一设计绝对是一个惊喜,但又不清楚学生们是否能够应付得了,从而感到担忧。我希望我的这份短短的文档,能够帮助学生对 Lisp 有一个初步的认识,从而更加顺利地完成大作业的要求。
如果这份文档能让你对 Lisp 语言本身,甚至函数式编程这一范型有了兴趣,那么就再好不过了。函数式编程在软件开发领域一直是一个高端的话题,它也确确实实解决了很多工程实践上的难题。JavaScript、C#、Rust、C++ 等传统编程语言,都或多或少受到了函数式编程的影响。如果你能对函数式编程有更深入的了解,那么你也一定能更好地运用这些编程语言。
下面是一些学习资料:
- SICP,在首页已经提到了,是最推荐的学习 Lisp 的专业教科书。
- Racket Get Started,提供了一些学习 Racket 方言的资料。
- CS 61A Scheme Reference。CS 61A Scheme 是 Scheme 的一个教学用子集,使用 Python 和 JavaScript 实现。本课程的大作业项目也受此启发。
- Learn your Haskell。Haskell 是另外一套非常流行的函数式编程语言,在工业界也颇为常用;但是 Haskell 的学习难度个人认为比 Lisp 要高。这本书也有 中文版。
如果你对本文档有什么意见或者建议,可以发邮件到 guyutongxue@163.com
。