gpt4 book ai didi

dictionary - 在 F# 中多次更新 map

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

假设我有一张 map M:Map<int, bool> (最初为空)。这次我想更新。我有一个 list L = [1 .. 100]对于这个列表中的每个元素,我想在 M 中设置相应的值错误的。所以就像,[1 .. 100] |> List.map (fun x -> M.Add(x, false)) .但是M.Add()每次都返回一个新 map ,并且不会反射(reflect)更新。如何以惯用的 F# 方式进行此更新?

最佳答案

您可以为此使用折叠:

let m = [1 .. 100] 
|> List.fold( fun (acc:Map<int,bool>) x -> acc.Add(x, false)) Map.empty
折叠将累加器和当前值作为参数。您可以在此处使用 Add 方法返回更新后的 Map。
对于您的特定场景,您还可以考虑使用字典:
let m2 = [1 .. 100] 
|>List.map(fun x->(x,false))
|>dict

关于dictionary - 在 F# 中多次更新 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65285337/

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