如果您需要所有元素的产品,您可以使用折叠:
> let a = [|1;2;3;4;5|];
> a |> Array.fold (*) 1;;
val it : int = 120
Run Code Online (Sandbox Code Playgroud)
如果您需要中间(累积)结果,则可以使用scan
.扫描获取数组中的每个元素,并将一个函数(在这种情况下为产品)应用于元素和先前的累积结果.从累加器的值1开始,我们得到:
> a |> Array.scan (*) 1;;
val it : int [] = [|1; 1; 2; 6; 24; 120|]
Run Code Online (Sandbox Code Playgroud)