函数式与类型化编程的探索
1. Flan:简单的函数式语言
函数式编程语言本质上是应用 λ - 演算。在描述常量的行为时,有两种方式:一是添加规则描述常量的预期行为,如 [plusconst] Plus n1 n2 →N[[n1]] + N[[n2]] ;二是引入 apply 函数,对于每个常量 c ,返回将 c 应用于其参数的结果,后续采用后一种方式。
1.1 抽象语法
Flan 是一种严格、纯函数式编程语言,是 ML 的子集。设 Fexp 表示 Flan 程序(或表达式)的语法类别, Fcon 表示 Flan 常量的语法类别, Var 表示变量集合。形成规则如下:
e ::= x | c | (e1, e2) | e1e2 | if e0 then e1 else e2 |
fn x.e | let x = e1 in e2 | letrec x = e1 in e2
c ::= n | True | False | Plus | Times | Minus | Equal | Not | IsZero
fn x.e 表示参数为 x 、主体为 e 的函数,函数应用通过表达式并列表示,所有函数只有一个参数。Flan 是应用 λ - 演算的扩展,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



