scheme

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来循环读取文件。
… 阅读全文>>

The implementation of define-datatype

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

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

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

scheme IO实现来自于CPS或者haskell的monod范畴思想

scheme中IO的实现类似于CPS在原来函数的基础上增加了一个控制变量。
… 阅读全文>>

let and letrec makes programming orient object

面向对象已经大行其道,而在scheme是如何实现,本文仅仅是刹那的思路, 可以通过let来定义局部变量,而可以通过letrec定义method的过程来实现 面向对象的数据抽象的能力。
… 阅读全文>>

Engine your life

有很多时候在思考engine是什么东西? 偶尔在一本书中看到Engine包含三个部分 clock ticks时间戳(什么时候做什么事情) success procedure failure procedure 也就是一个Engine交代了按照时间的发展,满足某个条件 该做什么事情,如果失败了该做什么东西。
… 阅读全文>>