Scheme编程入门:固定天数学会

5星 · 超过95%的资源 需积分: 9 58 下载量 57 浏览量 更新于2024-07-27 收藏 1.28MB PDF 举报
"Teach Yourself Scheme in Fixnum Days" 是一本关于学习 Scheme 语言的教程,作者 Dorai Sitaram,在1998年至2004年间创作并保留所有版权。该教程涵盖了一系列主题,旨在帮助读者在较短的时间内掌握 Scheme 的基本概念和用法。 教程内容包括: 1. **进入 Scheme**:这部分可能是介绍如何设置环境,启动 Scheme 解释器,并进行基本的交互式编程。 2. **数据类型**: - **简单数据类型**:讲解了 Scheme 中的基本数据类型,如布尔值(booleans)、数字(numbers)、字符(characters)和符号(symbols)。 - **复合数据类型**:涉及字符串(strings)、向量(vectors)、带有尾点的对(dotted pairs)和列表(lists),以及不同数据类型之间的转换。 - **其他数据类型**:可能涵盖了更多高级或特定于 Scheme 的数据结构。 - **S-表达式(S-expressions)**:Scheme 的基础,用于表示代码和数据。 3. **形式(Forms)**: - **过程(Procedures)**:定义和使用函数,包括参数处理和可变数量的参数。 - **apply 函数**:用于将列表中的元素作为参数传递给另一个函数。 - **序列化(Sequencing)**:描述如何执行一系列操作,可能包括表达式的顺序和控制流。 4. **条件语句**:包括 when 和 unless 控制结构,以及 cond、case、and 和 or 逻辑操作符。 5. **词法变量(Lexical variables)**: - **let 和 let\***:局部变量的绑定,let\* 保证变量按顺序初始化。 - **fluid-let**:提供动态绑定的变量,允许在作用域内改变变量的值。 6. **递归**: - **letrec**:支持递归定义的构造,允许在定义过程中引用自身。 - **命名 let**:另一种实现递归的方式。 - **迭代**:可能介绍了替代递归的循环结构。 - **列表映射**:如何使用函数遍历和操作列表。 7. **输入/输出(I/O)**: - **读取(Reading)**:从输入源获取数据的方法。 - **写入(Writing)**:向输出设备或文件写入数据。 - **文件端口(File ports)**:关于打开、关闭和操作文件的详细内容,可能包括自动打开和关闭。 这本教程通过详细的解释和实例,逐步引导读者深入理解 Scheme 语言的各个方面,适合初学者入门和有经验的程序员进一步探索 Scheme 的特性。同时,提供的下载链接包含了所有页面的文档存档和 TeX 源代码,方便读者自行打印或进一步编辑。