老文章

Ydiff单文件夹的所有scm文件比较

关于YDIff处理已经在[使用Ydiff工具生成文件差异比较文件][1]中提及,但是只是比较了两个文件夹之间的文件, 而如果是较为简单的单个文件的所有文件的比较?类似思路如下所示,
… 阅读全文>>

Some notations in the design of the language

What does it mean by Kleene star? What can it be used for? It is not so important,but a good tools to record the grammer of the language.目的就是如何更简洁地定义语法。
… 阅读全文>>

First Interpreter from EOPL

这是EOPL一个最为基本的解释器,后面的解释器都在此基础上进行改造,所以 得理解各个部分,并知道如何使用和改造。最终告诉的是解释器如何解释表达式(每一种语言的表达式)。 解释器解释表达式的问题。
… 阅读全文>>

Chicago really only has 7 characters?

我在听SICP的优酷视频时,听到“芝加哥也可以说是具有7个字符,同时他也可以表述为美国的中西部伊利诺伊州的全美第三大国际大都市”. 它可以仅仅表示语言的表面意思,也可以表示语言中的隐含意思。这体现了语言实现的一种魅力,Chicago really only has 7 characters?
… 阅读全文>>

cases的作用

为什么要实现cases,目的在于进一步抽象简化过程。
… 阅读全文>>

通过Scheme读取文件

通过IO monad的open-input-file 读取文件 通过read-line 读取接口文件 通过name-loop命名loop来循环读取文件。
… 阅读全文>>

使用Ydiff工具生成文件差异比较文件

Ydiff是一个不错的lisp语法分析工具(王垠编制).下面是该工具简单用途和使用说明。
… 阅读全文>>

The implementation of define-datatype

设计一个语言很重要的一点就是有一个工具来创建接口,define-datatype和cases就是这种工具
… 阅读全文>>

vim的乐趣

vim有很多基础教程,我看过比较好的是learn vim progressively。 % : Go to the corresponding (, {, [ * (resp. #) : go to next (resp. previous) occurrence of the word under the cursor
… 阅读全文>>

基于continuation的cps表达式,保存计算过程

CPS其实是实现branch分支的一种scheme技术,对于程序流程的控制具有 重要的作用。下面就一个细节对CPS进行简单说明。 Table of Contents 如果改变+1 为+3呢? CPS分析最好记住下面的分析方法
… 阅读全文>>