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

`return`

这里集中展示 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.

return

语法

return 用于提前从当前函数或 closure 返回。

语义

return 是显式 escape 点。

由于普通函数与 closure 调用蕴含隐式 resetreturn 同时具有:

  • 控制流离开当前调用边界
  • 值跨出当前局部 arena 的潜在提升需求

从统一控制语义上看,当前函数体默认就处于自己的 reset 边界中。

因此,return value 可理解为对当前函数边界 continuation 执行一次“带值恢复”,也就是:

return value  ~=  k(value)

在这种统一语义下,level-1 不提供空 return

即使返回 unit,也必须显式写成:

return ()

Usage

def abs(x: i32): i32 = {
	if x >= 0 {
		return x
	} else {
		return -x
	}
}

注释:return 必须显式携带值;哪怕返回 unit 也写 return ()

边界

return 只作用于最近的函数式调用边界;其返回值同时受 answer type 与 memory legality 约束。