f# - 如何在不带来太多开销的情况下使这个循环更实用

标签 f#

 for i in a..b do
     res <- res * myarray.[i]
 res

我必须使用类似

  Array.fold (*) 1 (Array.sub myarray a (b - a + 1))

,我认为这相当慢而且不够简洁?

最佳答案

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

Seq.fold (fun r i -> r * myarray.[i]) 1 {a .. b}

关于f# - 如何在不带来太多开销的情况下使这个循环更实用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498121/

相关文章:

events - F# 响应式(Reactive)订阅来自 COM 的非标准事件

haskell - J 风格的副词、 fork 等是否通过主流函数式语言的库进行了模拟?

recursion - 为什么这个拆分功能有效?

f# - 如何避免基于长模式匹配的函数?

f# - 在 Xamarin 中保存位图时出现一般错误

f# - 接口(interface)自动属性如何在对象表达式中实现

f# - 内联函数和类型扩展

debugging - 为我的自定义 .NET 语言构建调试器

math - 数学问题的代码生成

.net - 在 F# 中编码(marshal)具有 `char` 数组字段的结构数组