gpt4 book ai didi

arrays - f# 交换 Array2D 中的元素

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

如果我有一个二维数组,例如

test = array2D [|[|1; 2; 3|];
[|4; 5; 6|];]

我想通过索引交换两个元素,例如
swap test (0,0) (1,1) //[|[|5; 2; 3|];
//[|4; 1; 6|];]

我该怎么写?我已经看到通过引用传递每个项目并对其进行变异的解决方案,但这对我来说似乎是单调的(我可能是错的)。

最佳答案

您可以使用 Array2D.mapi 编写交换函数这不会改变原始数组。这将返回一个具有交换值的新数组:

let swap (arr : int[,]) i1 i2 =
let map i j v =
match (i,j) with
| t when t = i1 -> arr.[fst i2, snd i2]
| u when u = i2 -> arr.[fst i1, snd i1]
| _ -> v
arr |> Array2D.mapi map

关于arrays - f# 交换 Array2D 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23525842/

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