摘要: 《计算机程序的构造和解释》这本书的目标并不是讲解一门编程语言的语法等,它是一种方法。不是在向你陈述知识,而是在教你如何做到想要做的东西。它是一个过程,一个精神。这些引导过程的东西就是所谓的程序规则的模式。书中用了许多的例子来诠释书名,我才疏学浅就不再举例往博客上推了,仅仅归纳一点总结... 阅读全文
posted @ 2015-03-12 22:56 nomasp 阅读(204) 评论(0) 推荐(0) 编辑
摘要: display在common lisp中有format,在scheme中则有display,轻松应对各种输出。(display(+ 1 2 3 4))10;Unspecifiedreturn value(display‘(1 2 3 4))(12 3 4);Unspecifiedre... 阅读全文
posted @ 2015-03-12 14:28 nomasp 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 赋值因为Scheme是函数式语言,通常来说,你可以编写不使用赋值的语句。然后如果使用赋值的话,有些算法就可以轻易实现了。尤其是内部状态和继续(continuations)需要赋值。R5RS中规定的用于赋值的特殊形式是set!,set-car!,set-cdr!,string-set!... 阅读全文
posted @ 2015-03-12 14:26 nomasp 阅读(395) 评论(0) 推荐(0) 编辑
摘要: Scheme的数据结构在前面的博文中我们使用了list等等,像其他的编程语言一样,Scheme也有字符(Character),字符串(String),符号(Symbol),向量(Vector)等数据结构。下面我们来一一介绍。字符在某个字符前添加#\来表面该物是一个字符。例如,#\a表... 阅读全文
posted @ 2015-03-12 14:20 nomasp 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 高阶函数的介绍高阶函数的英文名称是Higher Order Function,它们是以函数为参数的函数。主要用于映射(mapping)、过滤(filtering)、归档(folding)和排序(sorting)表。高阶函数让程序更具模块性,让函数更加通用。函数sort具有2个参数,一... 阅读全文
posted @ 2015-03-12 14:10 nomasp 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 对象的比较eq?这个函数用来比较2个对象的地址,如果相同的话就返回#t。在Scheme中真用#t表示,假则用#f。 例如,(eq? str str)返回#t,因为str本身的地址的是一样的,但是”scheme”和”scheme”则被存储在不同的地址中,因此函数返回#f。注意,不要用e... 阅读全文
posted @ 2015-03-12 14:06 nomasp 阅读(272) 评论(0) 推荐(0) 编辑
摘要: quotient、remainder、modulo和sqrt函数quotient用于求商数(quotient)。 函数remainder和modulo用于求余数(remainder)。 函数sqrt用于求参数的平方根(square root)。 以下是一些示例:(quotient73... 阅读全文
posted @ 2015-03-12 13:59 nomasp 阅读(206) 评论(0) 推荐(0) 编辑
摘要: Edwin介绍Edwin是MIT Scheme系统的一个窗口式的编辑使用前端。启动Edwin实际是先启动Scheme系统,再启动也给Edwin前端。Edwin是一个使用Scheme写的交互式编辑器,其特点是支持Scheme表达式的编辑和求职。两种模式Edwin模式: 编辑Scheme... 阅读全文
posted @ 2015-03-12 13:53 nomasp 阅读(275) 评论(0) 推荐(0) 编辑