Skip to content
Racket指南(中文翻译)
Branch: master
Clone or download
Latest commit 45a100e Feb 25, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
00 Racket指南 Update 00 Racket指南 Feb 11, 2018
01 Racket语言欢迎你 Update 01 Racket语言欢迎你 Dec 10, 2017
01.1 与Racket语言交互 Update 01.1 与Racket语言交互 Dec 10, 2017
01.2 定义和交互
01.3 创建可执行文件
01.4 给有LISP|Scheme经验的读者的一个说明 Update 01.4 给有LISP|Scheme经验的读者的一个说明 Dec 10, 2017
02 Racket概要 Rename 2 Racket概要 to 02 Racket概要 Nov 22, 2017
02.1 简单的值
02.2 简单的定义与表达式
02.2.1 定义
02.2.2 代码缩进 Update and rename 2.2.2 代码缩进 to 02.2.2 代码缩进 Nov 22, 2017
02.2.3 标识符 Rename 2.2.3 标识符 to 02.2.3 标识符 Nov 22, 2017
02.2.4 函数调用(应用程序)
02.2.5 条件表达式if、and、or和cond Rename 2.2.5 条件表达式if、and、or和cond to 02.2.5 条件表达式if、and、or和cond Nov 22, 2017
02.2.6 函数重复调用
02.2.7 匿名函数与lambda
02.2.8 用define、let和let*实现本地绑定 Update 02.2.8 用define、let和let*实现本地绑定 Dec 14, 2017
02.3 列表、迭代和递归
02.3.1 预定义列表循环 Rename 2.3.1 预定义列表循环 to 02.3.1 预定义列表循环 Nov 22, 2017
02.3.2 从头开始列表迭代
02.3.3 尾递归
02.3.4 递归和迭代
02.4 pair、list和Racket的语法
02.4.1 用quote引用pair和symbol Rename 2.4.1 用quote引用pair和symbol to 02.4.1 用quote引用pair和symbol Nov 22, 2017
02.4.2 使用’缩写quote Rename 2.4.2 使用’缩写quote to 02.4.2 使用’缩写quote Nov 22, 2017
02.4.3 列表和Racket的语法
03 内置的数据类型
03.01 布尔值(Boolean)
03.02 数值(Number)
03.03 字符(Character)
03.04 字符串(Unicode Strings) Rename 3.04 字符串(Unicode Strings) to 03.04 字符串(Unicode Strings) Nov 22, 2017
03.05 字节(Byte)和字节字符串(Byte String)
03.06 符号(Symbol)
03.07 关键字(Keyword)
03.08 配对(Pair)和列表(List) Rename 3.08 配对(Pair)和列表(List) to 03.08 配对(Pair)和列表(List) Nov 22, 2017
03.09 向量(Vector) Rename 3.09 向量(Vector) to 03.09 向量(Vector) Nov 22, 2017
03.10 哈希表(Hash Table)
03.11 格子(Box)
03.12 空值(Void)和未定义值(Undefined)
04 表达式和定义 Rename 4 表达式和定义 to 04 表达式和定义 Nov 22, 2017
04.01 标记法
04.02 标识符和绑定 Rename 4.02 标识符和绑定 to 04.02 标识符和绑定 Nov 22, 2017
04.03 函数调用(过程程序) Rename 4.03 函数调用(过程程序) to 04.03 函数调用(过程程序) Nov 22, 2017
04.03.1 求值顺序和元数 Rename 4.03.1 求值顺序和元数 to 04.03.1 求值顺序和元数 Nov 22, 2017
04.03.2 关键字参数
04.03.3 apply函数
04.04 lambda函数(程序) Rename 4.04 lambda函数(程序) to 04.04 lambda函数(程序) Nov 22, 2017
04.04.1 申明剩余(rest)参数 Rename 4.04.1 申明剩余(rest)参数 to 04.04.1 申明剩余(rest)参数 Nov 22, 2017
04.04.2 声明可选(optional)参数
04.04.3 声明关键字(keyword)参数 Rename 4.04.3 声明关键字(keyword)参数 to 04.04.3 声明关键字(keyword)参数 Nov 22, 2017
04.04.4 多解函数:case-lambda Rename 4.04.4 多解函数:case-lambda to 04.04.4 多解函数:case-lambda Nov 22, 2017
04.05 定义:define Rename 4.05 定义:define to 04.05 定义:define Nov 22, 2017
04.05.1 函数简写
04.05.2 咖喱函数简写
04.05.3 多值和define-values
04.05.4 内部定义 Rename 4.5.4 内部定义 to 04.05.4 内部定义 Nov 22, 2017
04.06 局部绑定
04.06.1 平行绑定:let
04.06.2 相继绑定:let* Rename 4.6.2 相继绑定:let* to 04.06.2 相继绑定:let* Nov 22, 2017
04.06.3 递归绑定:letrec
04.06.4 命名let Rename 4.6.4 命名let to 04.06.4 命名let Nov 22, 2017
04.06.5 多值绑定:let-values,let*-values,letrec-values Rename 4.6.5 多值绑定:let-values,let*-values,letrec-values to 04.06.5 多值绑… Nov 22, 2017
04.07 条件分支
04.07.1 简单分支:if Rename 4.7.1 简单分支:if to 04.07.1 简单分支:if Nov 22, 2017
04.07.2 组合测试:and和or Rename 4.7.2 组合测试:and和or to 04.07.2 组合测试:and和or Nov 22, 2017
04.07.3 约束测试:cond Rename 4.7.3 约束测试:cond to 04.07.3 约束测试:cond Nov 22, 2017
04.08 排序 Rename 4.8 排序 to 04.08 排序 Nov 22, 2017
04.08.1 前置影响:begin
04.08.2 后置影响:begin0 Rename 4.8.2 后置影响:begin0 to 04.08.2 后置影响:begin0 Nov 22, 2017
04.08.3 if影响:when和unless
04.09 赋值:set! Rename 4.9 赋值:set! to 04.09 赋值:set! Nov 22, 2017
04.09.1 使用赋值的指导原则
04.09.2 多值赋值:set!-values
04.10 引用:quote和'
04.11 准引用:quasiquote和`
04.12 简单分派:case Rename 4.12 简单分派:case to 04.12 简单分派:case Nov 23, 2017
04.13 动态绑定:parameterize Update 04.13 动态绑定:parameterize Nov 24, 2017
05 自定义的数据类型
05.1 简单的结构类型:struct
05.2 复制和更新
05.3 结构子类 Rename 5.3 结构子类 to 05.3 结构子类 Nov 24, 2017
05.4 不透明结构类型与透明结构类型对比
05.5 结构的比较 Create 05.5 结构的比较 Nov 24, 2017
05.6 结构类型的生成性 Create 05.6 结构类型的生成性 Nov 24, 2017
05.7 预制结构类型
05.8 更多的结构选项
06 模块
06.1 模块基础知识 Update 06.1 模块基础知识 Dec 11, 2017
06.1.1 组织模块 Update 06.1.1 组织模块 Dec 11, 2017
06.1.2 库集合
06.1.3 包和集合 Update 06.1.3 包和集合 Dec 11, 2017
06.1.4 添加集合 Update 06.1.4 添加集合 Dec 11, 2017
06.2 模块的语法
06.2.1 module表 Create 06.2.1 module表 Nov 25, 2017
06.2.2 #lang简写 Rename 06.2.2 #lang速记法 to 06.2.2 #lang简写 Dec 7, 2017
06.2.3 子模块
06.2.4 main和test子模块 Update and rename 06.2.4 主要测试的子模块 to 06.2.4 main和test子模块 Nov 26, 2017
06.3 模块的路径
06.4 导入:require Create 06.4 导入:require Nov 30, 2017
06.5 输出:provide Create 06.5 输出:provide Nov 30, 2017
06.6 赋值和重定义 Create 06.6 赋值和重定义 Nov 30, 2017
07 合约
07.1 合约和边界 Create 07.1 合约和边界 Dec 2, 2017
07.1.1合约的违反
07.1.2 合约与模块的测试 Create 07.1.2 合约与模块的测试 Dec 2, 2017
07.1.3 嵌套合约的测试 Create 07.1.3 嵌套合约的测试 Dec 2, 2017
07.2 函数的简单合约
07.2.1 ->类型 Update 07.2.1 ->类型 Dec 3, 2017
07.2.2 define|contract和->的使用
07.2.3 and-any|c
07.2.4 扩展自己的合约
07.2.5 合约的高阶函数
07.2.6 带”???“的合约信息
07.2.7 解析合约的错误消息
07.3 通常的函数合约
07.3.1 可选参数
07.3.2 剩余参数
07.3.3 关键字参数 Create 07.3.3 关键字参数 Dec 7, 2017
07.3.4 可选关键字参数
07.3.5 case-lambda合约
07.3.6 参数和结果的依赖 Create 07.3.6 参数和结果的依赖 Dec 8, 2017
07.3.7 状态变化的检查 Update 07.3.7 状态变化的检查 Dec 8, 2017
07.3.8 多个结果值
07.3.9 固定但静态未知数量的参数
07.4合约:一个全面的例子 Create 07.4合约:一个全面的例子 Dec 9, 2017
07.5 结构的合约 Create 07.5 结构的合约 Dec 10, 2017
07.5.1 对特定值的确保
07.5.2 对所有值的确保 Create 07.5.2 对所有值的确保 Dec 10, 2017
07.5.3 检查数据结构的特性 Create 07.5.3 检查数据结构的特性 Dec 10, 2017
07.6 用#:exists和#:∃抽象合约 Update 07.6 用#:exists和#:∃抽象合约 Dec 13, 2017
07.7 额外的例子 Create 07.7 额外的例子 Dec 13, 2017
07.7.1 客户管理器的组成 Create 07.7.1 客户管理器的组成 Dec 13, 2017
07.7.2 参数(简单)栈
07.7.3 字典 Create 07.7.3 字典 Dec 13, 2017
07.7.4 队列
07.8 建立新合约 Update 07.8 建立新合约 Dec 13, 2017
07.8.1 合约结构属性
07.8.2 所有的警告和报警 Create 07.8.2 所有的警告和报警 Dec 14, 2017
07.9 陷阱 Create 07.9 陷阱 Dec 14, 2017
07.9.1 合约和eq?
07.9.2 合约的范围和define|contract Rename 07.9.2 合约的范围和define|contract to 07.9.2 合约的范围和define|contract Dec 16, 2017
07.9.3 合约的生存期和判定
07.9.4 定义递归合合约
07.9.5 混合set!和合约
08 输入和输出
08.1 端口的种类 Update 08.1 端口的种类 Nov 30, 2017
08.2 默认端口 Update 08.2 默认端口 Nov 30, 2017
08.3 读和写Racket数据
08.4 字符类型和序列化
08.5 字节、字符和编码
08.6 IO模式
09 正则表达式
09.01 写regexp模式
09.02 匹配正则表达式模式
09.10 一个扩展示例 Create 09.10 一个扩展示例 Dec 31, 2017
09.3 基本申明
09.4 字符和字符类 Update 09.4 字符和字符类 Dec 24, 2017
09.4.1 常用的字符类
09.4.2 POSIX字符类 Create 09.4.2 POSIX字符类 Dec 27, 2017
09.5 量词
09.6 聚类 Create 09.6 聚类 Dec 27, 2017
09.6.1 后向引用
09.6.2 非捕捉簇 Create 09.6.2 非捕捉簇 Dec 30, 2017
09.6.3 回廊 Create 09.6.3 回廊 Dec 30, 2017
09.7 替代 Create 09.7 替代 Dec 31, 2017
09.8 回溯
09.9 前后查找
09.9.1 向前查找 Update 09.9.1 向前查找 Dec 31, 2017
09.9.2 向后查找
10 异常与控制 Update and rename 10 例外与控制 to 10 异常与控制 Jan 1, 2018
10.1 异常
10.2 提示和中止 Create 10.2 提示和中止 Jan 1, 2018
10.3 延续 Create 10.3 延续 Jan 1, 2018
11 迭代和推导
11.01 序列构造 Create 11.01 序列构造 Dec 5, 2017
11.02 for和for* Rename 11.2 for和for* to 11.02 for和for* Jan 2, 2018
11.03 for|list和for*|list
11.04 for|vector和for*|vector
11.05 for|and和for|or
11.06 for|first和for|last
11.07 for|fold和for*fold
11.08 多值序列 Rename 11.8 多值序列 to 11.08 多值序列 Jan 20, 2018
11.09 打断迭代
11.10 迭代性能
12 模式匹配
13 类和对象
13.1 方法 Create 13.1 方法 Jan 3, 2018
13.2 初始化参数
13.3 内部和外部名称
13.4 接口(Interface)
13.5 Final、Augment和Inner
13.6 控制外部名称的范围
13.7 混合(mixin)
13.7.1 混合和接口
13.7.2 mixin表
13.7.3 参数化的混合 Create 13.7.3 参数化的混合 Jan 20, 2018
13.8 特征(trait) Update and rename 13.8 特征 to 13.8 特征(trait) Jan 24, 2018
13.8.1 混合集的特征
13.8.2 特征的继承与超越 Update 13.8.2 特征的继承与超越 Jan 24, 2018
13.8.3 trait(特征)表 Create 13.8.3 trait(特征)表 Jan 24, 2018
13.9 类合约
13.9.1 外部类合约 Create 13.9.1 外部类合约 Jan 25, 2018
13.9.2 内部类合约
14 单元(部件) Create 14 单元(部件) Jan 26, 2018
14.1 签名和单元 Create 14.1 签名和单元 Jan 26, 2018
14.2 调用单元
14.3 链接单元 Create 14.3 链接单元 Jan 27, 2018
14.4 一级单元
14.5 完整的-module签名和单元
14.6 单元合约 Create 14.6 单元合约 Jan 27, 2018
14.6.1 给签名添加合约
14.6.2 给单元添加合约 Create 14.6.2 给单元添加合约 Jan 27, 2018
14.7 unit(单元)与module(模块)的比较
15 反射和动态求值 Create 15 反射和动态求值 Feb 1, 2018
15.1 eval
15.1.1 本地域
15.1.2 命名空间(Namespace) Create 15.1.2 命名空间(Namespace) Feb 1, 2018
15.1.3 命名空间和模块 Create 15.1.3 命名空间和模块 Feb 1, 2018
15.2 操纵的命名空间
15.2.1 创建和安装命名空间
15.2.2 共享数据和代码的命名空间
15.3 脚本求值和使用load
16 宏(Macro)
16.1 基于模式的宏
16.1.1 define-syntax-rule
16.1.2 词法范围
16.1.3 define-syntax和syntax-rules
16.1.4 匹配序列 Create 16.1.4 匹配序列 Feb 4, 2018
16.1.5 标识符宏
16.1.6 set!转化器 Create 16.1.6 set!转化器 Feb 4, 2018
16.1.7 宏的宏生成
16.1.8 扩展的例子:函数的参考调用
16.2 通用宏转化器 Create 16.2 通用宏转化器 Feb 8, 2018
16.2.1 语法对象
16.2.2 宏转化器程序 Create 16.2.2 宏转化器程序 Feb 8, 2018
16.2.3 混合模式和表达式:syntax-case Create 16.2.3 混合模式和表达式:syntax-case Feb 8, 2018
16.2.4 with-syntax和generate-temporaries Create 16.2.4 with-syntax和generate-temporaries Feb 8, 2018
16.2.5 编译和运行阶段 Update 16.2.5 编译和运行阶段 Feb 8, 2018
16.2.6 通用阶段等级 Create 16.2.6 通用阶段等级 Feb 8, 2018
16.2.6.1 阶段和绑定 Create 16.2.6.1 阶段和绑定 Feb 8, 2018
16.2.6.2 阶段和模块 Update 16.2.6.2 阶段和模块 Feb 10, 2018
16.2.7 语法污染 Create 16.2.7 语法污染 Feb 10, 2018
16.2.7.1 污染模式
16.2.7.2 污染和代码检查 Create 16.2.7.2 污染和代码检查 Feb 11, 2018
README.md Update README.md Feb 25, 2018
WORDBOOK.md Update WORDBOOK.md Feb 11, 2018

README.md

RackGuideInChinese

Racket指南(中文翻译)

最新信息:

由于最新版本的Racket6.12已经出来。故自16章之后的翻译直接在原文档的Scribble文件上翻译,请需要的朋友查看racket6.12里的相应内容。

罗马不是一天建成的。

欢迎愿意参与的朋友一起来完成这个项目,给想学习Racket的朋友提供一个学习工具。

英文的原始网页:https://docs.racket-lang.org/guide/index.html

文件规则:

  1. 文件名称为:小节编号(如:2.2.1),后边跟小节名称。编号超过10的,一律采用两位数表示(如:03.03)。
  2. 每个文件第一行为文件名称,文件名称应与实际名称相同。
  3. 目录中的每行独立成一个文件编辑。
  4. 每小节内容的带编号的节原则上也划分成一个独立文件编辑(为了减少每个阶段的工作量,便于碎片化工作)。
  5. 在“0 Racket指南”中目录每一项进行标注。完成的标注为“(OK)”,正在进行的标注“(……)”,没有做的没有标注。
  6. 不要在乎翻译的精确性,先完成一个完整的内容,再反过来修订。先求有,再求好,再求精确。
  7. 要参与的朋友请先告知希望做那个部分,这样可以打上标记,提醒该部分已经在进行中,以避免重复。
  8. 翻译内容所涉及到的名词术语统一的翻译名称可参考字典文件(WORDBOOK.md)内定义内容。目录中的名称译法等同于字典。

贡献者名单:(按加入先后)

github 贡献内容
OnRoadZy 整体
InvisibleMoon 第8章~8.6节
Ghaker 第11章~11.01节
You can’t perform that action at this time.