gpt4 book ai didi

f# - Seq.iter vs for - 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 23:46:56 25 4
gpt4 key购买 nike

我可以

for event in linq.Deltas do

或者我可以
linq.Deltas |> Seq.iter(fun event ->

所以我不确定这是否相同。如果那不一样,我想知道区别。我不知道用什么: iterfor .

已添加 - 所以如果这是我的选择,我更喜欢使用 iter在顶层和 for用于关闭

稍后添加 - 看起来像 itermap + ignore - 这是逃避使用命令式忽略词的方法。所以它看起来像功能方式......

最佳答案

正如其他人提到的,存在一些差异( iter 支持非泛型 IEnumerator 并且您可以改变 mutable 中的值 for )。这些有时是重要的差异,但大多数时候您可以自由选择使用哪一个。

我一般更喜欢 for (如果有语言结构,为什么不使用它?)。 iter的情况当你有一个需要调用的函数时看起来更好(例如使用部分应用程序):

// I would write this:
strings |> Seq.iter (printfn "%c")

// instead of:
for s in strings do printfn "%c" s

同样,使用 iter如果在某些处理管道的末尾使用它会更好:
// I would write this:
inputs |> Seq.filter (fun x -> x > 0)
|> Seq.iter (fun x -> foo x)

// instead of:
let filtered = inputs |> Seq.filter (fun x -> x > 0)
for x in filtered do foo x

关于f# - Seq.iter vs for - 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5726566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com