R5RS解读笔记

2012-12-23
            R5RS      Revision 5 Report on the Algorithmic Language Scheme 即Scheme标准的第五版

我打算在毕业前,以这个语言标准作为研究的重点。这么小众的语言, 好怕研究多了没饭吃哦!

还是每天三个个小时的Erlang,一分钟都不能缺。3 * 30 * 5 = 450 小时 掐指头算你你能干点儿啥吧!

 

Mit-scheme ref 上 写着:

(equal? (lambda (x) x)
(lambda (y) y)) )   à unspecified

而在mit-scheme 9.1 上运行, 却得到 #f,  甚至

(equal? (lambda (x) x)
(lambda (x) x)) )   à #f

难道是认为任何procedure都是不同的。

4, 简单易学,


Dec 10th
好了,我现在要做的事情就是:标准已经有了,根据标准写出程序。(而且还有案例可以参考)
文档的书写, (一切要有理有据,有计划而行)
1, 数据结构是基础,复合数据类型一定要完成。否则对象之类的东西没法进行了。
2, Lisp中List是关键,对其各种操作优先实现
3,函数的定义
control feature
eval & apply, REPL 的实现
尾递归化

大问题:
GC, 我该怎么去实现呢?
debug 功能能有时间完成吗?
error怎么处理?
算了,先按照这个开始做吧。要想完成工作,方法只有一个: 现在就开始动手。
macro是高级话题,最后实现。
io功能,一年内,估计我是没有能力做的。 错了,这个应该好做,用C实现嘛,屏蔽了底层的细节,不是吗?
Object 的继承 更是高级特征, (话说我以前怎么这么笨,一上来就要实现Lisp的面向对象特性)。
不加点东西进去的话,就有点没有创新性了, 好吧,争取把面向对象实现了。我靠,你有那么多时间吗?
expression 还有type?怎么理解?
今日总结:
1, R5 只有 50页, MIT-scheme-ref 却有360也, 这就是规范和实现的差别。
2, 刚看了MIT-scheme-ref, 要实现我的”Unknown” lisp interpreter, 基本上会涉及到Introduction to Algorithms 中大部分内容。在毕业之前还是能对数据结构和算法稍有了解的。
3, 必须要选择两到三个Scheme开源项目,最好是MIT-scheme,guile的, 要阅读足够的代码,要有足够的输入,否则这指尖的经验不够啊。

 

如果有任何意见,欢迎留言讨论。


[ 主页 ]
COMMENTS
POST A COMMENT

(optional)



(optional)