摘要: 很多人写过 Scheme 开发环境的设置。但 Scheme 毕竟是一种 Lisp ,是 Lisp 就应该用 Slime。Chicken Scheme 有一个扩展叫 Chicken Slime, 安装非常简单,但功能极差。安装之后几乎没用。Slime本身带的,contrib目录下的swank-kawa... 阅读全文
posted @ 2014-10-11 22:00 ysc 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 写Scheme代码时,经常要判断表的长度。长度为0时一个操作,长度为1时,另一个操作,长度为2时,第三种操作 ...。最容易想到的方法是(define (length=? m l) (= m (length l)))但这个 length=? 很低效。它要先计算表的长度n。length 的复杂度是O... 阅读全文
posted @ 2014-10-10 12:25 ysc 阅读(279) 评论(0) 推荐(0) 编辑
摘要: Mit-Scheme不支持syntax-case, 只能用它的er-macro-transformer来编写。Mit-Scheme的宏系统比较低级,不支持模式匹配和literal。使用pmatch能得到一个可用的模式匹配,为了简洁这里使用了pmatch,没有pmatch也可以编写同样的宏,但啰嗦一点... 阅读全文
posted @ 2014-10-09 20:07 ysc 阅读(847) 评论(0) 推荐(0) 编辑
摘要: 有三个辅助关键字in, from和to能够 break和continue语法有三种(for n in '(1 2 3 4 5 6 7 8 9 10) (if (> n 8) (break #f)) (if (even? n) (continue #f)) (display n) (displ... 阅读全文
posted @ 2014-10-09 18:35 ysc 阅读(730) 评论(0) 推荐(0) 编辑