Chiba Logo CHIBA v0.6.13
CHIBA blog RSS feed
CHIBA / DOCS / LEVEL-1 SPEC

`data`

这里集中展示 CHIBA level-1 specification,覆盖 core language、control flow、memory、patterns、IR lowering 与 package system 等实现边界。

The docs surface keeps CHIBA level-1 specification pages browsable inside the site, with direct paths into language, control flow, memory, pattern, and lowering rules.

data

语法

data 用于定义代数数据类型与构造子。

语义

data 引入:

  • 一个类型名
  • 一组构造子
  • 对应的 pattern matching 入口

在 level-1 中,普通 data 默认按 managed value 处理,而不是要求用户普遍书写 uniqueness 注解。

constructor 默认随 data 一起公开;若需要收窄,则通过 private 处理。

constructor 冲突默认允许通过裸名使用;发生冲突时,使用 Type.Ctor 消歧。

Usage

data Option[T] {
	Some(T)
	None
}

let x = Some(1)
let y = Option.None

注释:无冲突时允许裸 constructor;冲突时回到 Type.Ctor 路径。

边界

record-style data 与普通 constructor 风格都属于同一 data 体系;let 仍不接纳 refutable constructor destruct。