Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在while循环中更新FSharpMap [] 让主argv= 设linshi1=[| 1,2 |] 设linshi2=Array.append linshi1[| 2,3 |] 设map1=Map.ofArray linshi2 设可变it=1 当它=1时 它_Map_F#_Local_Mutable - Fatal编程技术网

在while循环中更新FSharpMap [] 让主argv= 设linshi1=[| 1,2 |] 设linshi2=Array.append linshi1[| 2,3 |] 设map1=Map.ofArray linshi2 设可变it=1 当它=1时 它

在while循环中更新FSharpMap [] 让主argv= 设linshi1=[| 1,2 |] 设linshi2=Array.append linshi1[| 2,3 |] 设map1=Map.ofArray linshi2 设可变it=1 当它=1时 它,map,f#,local,mutable,Map,F#,Local,Mutable,首先,您不能“更新”,因为它是不可变的数据结构,即添加到地图会生成另一个地图。目前尚不清楚如何将读取Excel与更新地图相结合,但您可以随时执行以下操作 [<EntryPoint>] let main argv = let linshi1 = [|1,2|] let linshi2 = Array.append linshi1 [|2,3|] let map1 = Map.ofArray linshi2 let mutable it = 1

首先,您不能“更新”,因为它是不可变的数据结构,即添加到地图会生成另一个地图。目前尚不清楚如何将读取Excel与更新地图相结合,但您可以随时执行以下操作

[<EntryPoint>]
let main argv = 
    let linshi1 = [|1,2|]
    let linshi2 = Array.append linshi1 [|2,3|]
    let map1 = Map.ofArray linshi2
    let mutable it = 1
    while it = 1 do 
        it <- it - 1
        let map2 = map1.Add(3,4)
        let map1 = map2
        printfn "!\n"
    printfn "done"
    0
正在执行的将按预期输出
map[(1,2);(2,3);(3,4)]

首先,您不能“更新”,因为它是不可变的数据结构,即添加到一个map会生成另一个map。目前尚不清楚如何将读取Excel与更新地图相结合,但您可以随时执行以下操作

[<EntryPoint>]
let main argv = 
    let linshi1 = [|1,2|]
    let linshi2 = Array.append linshi1 [|2,3|]
    let map1 = Map.ofArray linshi2
    let mutable it = 1
    while it = 1 do 
        it <- it - 1
        let map2 = map1.Add(3,4)
        let map1 = map2
        printfn "!\n"
    printfn "done"
    0

正在执行的将按预期输出
map[(1,2);(2,3);(3,4)]

+1这个答案绝对正确。只是一个小问题-您实际上不需要更改
map1。将
添加到类似
(3,4)| |>Map.Add@TomasPetricek:感谢您提醒我们,有时使用类型实例方法可能比使用类型模块函数更可取。+1这个答案绝对正确。只是一个小问题-您实际上不需要更改
map1。将
添加到类似
(3,4)| |>Map的内容中。Add@TomasPetricek:感谢您提醒我们,有时使用类型实例方法可能比使用类型模块函数更可取。
[<EntryPoint>]
let main argv = 
    let linshi1 = [|1,2|]
    let linshi2 = Array.append linshi1 [|2,3|]
    let map1 = Map.ofArray linshi2
    let map1 = (3,4) ||> Map.add <| map1
    printfn "%A" map1
    0