最近看完的和想看的书
最近看完的书大部分和lisp有关系:
- 《Build Your Own Lisp》
- 《The Common Lisp Cookbook》
- 《Let Over Lambda 中文版》
- 《Extending a Language — Writing Powerful Macros in Scheme》
Lisp和scheme的语法差不多,但是除了宏以外还有一个最明显的区别,(cdr '())
会计算出不同的东西。
SBCL
* (cdr '())
NIL
* (cdr nil)
NIL
*
ChezScheme
> (cdr '())
Exception in cdr: () is not a pair
Lisp的做法可以让代码更简洁,但是scheme的看起来更直观,比如
(cond ((cdr (lookup lat a)) ...)
...
)
Lisp对返回的空的list就能直接返回,而scheme会返回错误,因为空的lisp不能应用cdr,但是scheme有带参数的cond跳转。我个人觉得scheme更自洽一点,毕竟'()不是一个特殊的值。
想看完的还是两本,才看了一半
《SICP》
《EOPL》
闲暇的时候翻翻下面的书
《scheme 9 from empty space》
《Software Design for Flexibility》
《Lisp in Small Pieces》
其实最感兴趣的还是VM的编译和实现,似乎现在很少有这方面的书籍
ribbit我已经移植到esp32上面了,但是怎么实现像fasl一样的东西还是没什么头绪,虽然vm部分实现很简单,但是scheme的编译器部分几乎都没有什么注释。
评论已关闭