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

Lambda

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

Lambda

语法

lambda 使用箭头语法引入匿名函数。

当前默认 surface 为:

(x: Tx): R => expr
(x: Tx, y: Ty): R => expr
(): R => expr

其中:

  • 参数列表使用 (...)
  • 返回类型显式写成 : Ret
  • => 引入 lambda body

level-1 不把 {|args| body } 当作默认的 standalone lambda 语法。

这样可以避免与大括号相关的其他入口产生过多 parser 回退,尤其避免把:

{|x| y: z}

误读为 closure,而不是既有的 update / record 相关语法入口。

语义

lambda 构造 closure value;其调用蕴含隐式 reset,其 capture 也可能触发 escape 与提升。

Usage

let inc = (x: i32): i32 => x + 1
let get = (): String => String.from("ok")

注释:closure 使用 (...): Ret => expr 形式;当 body 需要多语句时,expr 可以是 block expression。

边界

lambda 与 grouped expr / tuple 的歧义入口、以及 trailing closure 如何 desugar 到普通 lambda,仍需按 parser 细则补充;但其 surface 已固定为 (...): Ret => expr