给定let ra = ResizeArray<int> ():
Seq.forall (fun i ->
let q = i % 2
if 0 = q then ra.Add i
true ) <| seq { 1..10 }
如果我这样做,ra.Count返回5.
Seq.forall (fun i ->
let q = i % 2
if 0 = q then ra.Add i
0 = q ) <| seq { 1..10 }
如果我这样做,ra.Count返回0.
那么,除非 lambda 函数的每次迭代都计算为 true,否则函数中的任何代码都不会被执行,还是什么?
这里发生了什么?