Scheme编程速成:Teach Yourself Scheme in Fixnum Days
需积分: 9 188 浏览量
更新于2024-07-21
收藏 1.28MB PDF 举报
"Teach Yourself Scheme in Fixnum Days 是一本针对Scheme编程语言的入门教程,适合已有编程基础,特别是熟悉动态语言的读者快速掌握Scheme的独特之处。该书也适合希望系统学习Scheme的学生。"
在这本教程中,作者Dorai Sitaram详细介绍了Scheme的基本概念和语法。以下是关键知识点的概述:
1. **进入Scheme**
- 教程的开头引导读者进入Scheme的世界,介绍如何设置环境并开始编写Scheme代码。
2. **数据类型**
- **简单数据类型**:包括布尔值、数字、字符和符号。布尔值只有#t(真)和#f(假);数字包括整数和浮点数;字符是单个字符表示;符号是不可变的标识符。
- **复合数据类型**:如字符串、向量、尾递归对和列表。字符串是由字符组成的序列;向量类似于数组,但操作通常更快;尾递归对和列表是Scheme中构建复杂数据结构的基础。
- **其他数据类型**:可能包括特殊的数据结构或特定于实现的类型。
- **S表达式(S-expressions)**:是Scheme程序的基本表示形式,可以是原子(如数字、符号等)或嵌套的列表。
3. **形式**
- **过程**:定义函数或操作,有固定数量的参数或可变数量的参数。
- **apply**:用于将一个列表作为参数传递给另一个过程。
- **序列化**:控制执行顺序,如表达式的求值顺序。
4. **条件语句**
- **when和unless**:简洁的条件表达方式,类似于其他语言的if-then和if-not。
- **cond**:多分支条件判断,比if更灵活。
- **case**:基于关键字的多分支选择。
- **and和or**:短路逻辑运算符,用于组合条件。
5. **词法变量**
- **let和let\***:创建局部变量的绑定,let\*保证变量按顺序绑定。
- **fluid-let**:允许改变变量的绑定,类似动态作用域。
6. **递归与迭代**
- **letrec**:支持自引用的递归定义。
- **命名let**:提供了一种在不使用letrec的情况下实现递归的方法。
- **迭代**:通过循环和递归实现计算,如使用do或while。
- **列表处理**:介绍了如何遍历和应用过程到列表的所有元素。
7. **输入/输出(I/O)**
- **读取**:从输入源获取数据,如键盘或文件。
- **写入**:将数据输出到显示器或文件。
- **文件端口**:管理文件的打开、关闭和读写操作,自动打开和关闭功能。
通过这本书,读者不仅可以学习到Scheme的基本语法,还能了解到函数式编程的核心概念,以及如何利用Scheme的特性进行高效编程。对于想要深入理解Lisp家族语言的程序员来说,这是一本宝贵的资源。
点击了解资源详情
108 浏览量
103 浏览量
103 浏览量
2008-12-11 上传
2011-05-10 上传
184 浏览量
2021-03-14 上传
2021-06-16 上传
flexlm306
- 粉丝: 1
- 资源: 22
最新资源
- 单片机模拟I2C总线及24C02(I2C EEPROM)读写实例.doc
- you can do it
- 用Matlab扩展Excel的功能.pdf
- 线性代数3版习题详细解答
- UML Reference Manual 英文版 (pdf)
- 一些不错的开源Flex项目.txt
- 解析Linux特殊文件
- Modelsim安装步骤
- Cactus 业务流程执行平台的研究和实现
- [美]P[1].德苏泽+J.pdf
- python--Python 学习笔记
- LCD驱动显示原理及驱动开发
- Apress+-+Expert+Shell+Scripting.pdf
- Ubuntu+Server+Administration+.pdf
- Manning[1].Hibernate.Search.In.Action.Dec.2008.pdf
- Flex 3 cookbook 简体中文(全)