递归和 map/fold 之外,Dawn 也有普通循环:while 条件循环、for x in 列表、
for i in a..b(含 a 不含 b)。break 提前退出最内层循环,continue 跳到下一轮;
它们是 Never 类型的表达式,不能穿过 lambda 边界。
pub fn main() -> Unit !io = {
var sum = 0
for i in 0..5 {
if i == 3 { continue }
sum = sum + i
}
println("${sum}")
var n = 0
while true {
n = n + 1
if n * n > 30 { break }
}
println("${n}")
}
7
6
另见:spec.md §4.7