豫言赋
以雅辞明函数之道,以今译备初学之疑。
小引
粤若结绳既远,书契聿兴;竹帛载言,金石传声。迨夫电走铜脉,算驰硅城,欲役万机,必先正辞。西式之码,固可通神工;华夏之文,亦宜开别境。于是取名实之辨,参函数之理;以 化 述所变,以 而 接所成;以 鉴 察万形,以 承 贯众类。字有疆而意无际,句若古而器维新。名之曰豫言,铺陈其术,乃为此赋。
是书以赋体为文,以函数为经,以类型为纬。先陈值与类,次及术与参;继以构造、鉴形、递归、多态,终于府库、效用、持变、合章。诸例皆尝以仓库所载稳定自举编译器验其类,又编而行之,非徒纸上谈兵也。
十三篇之体与循序之法,取意于《文言阴符》;然篇目、譬喻、正文与豫言诸例,皆据豫言今制而新作。欲考语法之精,宜观语言规范;欲构编译之器,宜循快速开始。
篇目
| 篇章 | 所明 | 成例 |
|---|---|---|
| 启机第一 | 编译、运行与初声 | 启机。豫 |
| 正名第二 | 名、实、字面与定义 | 正名。豫 |
| 术数第三 | 函数之类、参数、调用与局部绑定 | 术数。豫 |
| 决疑第四 | 爻、比较与条件 | 决疑。豫 |
| 制器第五 | 自制类型与构造器 | 制器。豫 |
| 鉴形第六 | 模式、对子与分枝 | 鉴形。豫 |
| 列阵第七 | 多态列与结构递归 | 列阵。豫 |
| 通术第八 | 高阶术、多态与隐式类参 | 通术。豫 |
| 归藏第九 | 顶层递归与局部递归 | 归藏。豫 |
| 府库第十 | 模块之寻、观、诵与投影 | 府库。豫 |
| 弦歌第十一 | 字符串、输入输出与次序 | 弦歌。豫 |
| 持变第十二 | 可选值、异常与引用 | 持变。豫 |
| 成章第十三 | 合诸术为数据流水 | 成章。豫 |
读法
赋文主于取势,章解主于定言,代码主于验实。初学宜循篇次而进;素习函数式编程者,可自第五篇始,专察豫言之构造、模式与隐参。
诸篇成例,皆可立于仓库之根径行之。例曰:
./yy_bs_stable 文档/豫言赋/示例/启机。豫
但欲验类而不运行者,曰:
./yy_bs_stable 文档/豫言赋/示例/启机。豫 --type-check-only
约法
豫言之辞虽近人言,其法度则严。读者当先识四端:
- 内建关键之辞裸书,如
乃、者、会、而、于、鉴;自定之名,以「」括之。 - 字符串以
『』括之;数字字面量,亦寓「」中。 - 声明以中文句号
。相隔;表达式须定其组者,以全角括号()括之。 - 是书务明,故多显书其辞;习熟之后,乃可酌用语言所容之简式。
古所谓绳墨者,非困匠也,所以成方圆;今所谓类型者,非困作者也,所以护程序。守其界,然后纵其才。十三篇之旨,大抵在此。