第 3 章

Flow 与 Stream

理解管道传值、惰性流和单次消费语义。

管道即语言

表达式 lhs |> f(a) 等价于把 lhs 注入为 f 的第一个参数。标准库统一按 Source → Transform → Filter → Action 组织。

example.hhy
[1, 2, 3, 4, 5]
    |> stream
    |> map { number -> number * 2 }
    |> where { number -> number > 5 }
    |> take(2)
    |> print

惰性执行

  • Stream 按需拉取,不预先物化全部输入。
  • Stream 只能消费一次。
  • take 可以安全截断有限流和无限流。
  • sort、group_by、collect 等 barrier 会物化输入并受资源上限约束。