Fork me on GitHub

Haskell的数据容器(List/Tuple/...)的基本操作函数有哪些,不包括任何库(prelude),只有语言核心?

Haskell的数据容器(List/Tuple/...)的基本操作函数有哪些,不包括任何库(prelude),只有语言核心?

Submitted by at 6 years ago

所有回复

GHC Core Syntax

GHC Core Syntax

看看 GHC Core 里面的定义吧,和数据相关的操作只需要两种:

1. 构造:
    con var_1 ... var_n

2. 解构:
    case Expr of
        con_1 var_1 ... var_n -> Expr
        ...

在构造时,使用 con 来实现 sum 类型,后面允许跟多个变量的值实现 product 类型

在解构时,使用 con 来匹配 sum 类型的分支,后面允许变量的绑定从 product 类型中取出数据

注意,尽管语法 (syntax) 上都使用 con 和 var,但它们在构造和解构时的所代表的语义 (semantics) 是不一样的。

ninegua 6 years ago