如何在不带来太多开销的情况下使这个循环更具功能性

col*_*ang 2 f#

 for i in a..b do
     res <- res * myarray.[i]
 res
Run Code Online (Sandbox Code Playgroud)

我必须使用喜欢

  Array.fold (*) 1 (Array.sub myarray a (b - a + 1))
Run Code Online (Sandbox Code Playgroud)

,我认为这是相当慢,而不是那么简洁?

Dan*_*iel 5

不知道你是否会发现它更好,但你可以这样做:

Seq.fold (fun r i -> r * myarray.[i]) 1 {a .. b}
Run Code Online (Sandbox Code Playgroud)