gpt4 book ai didi

f# - 获取具有特定值的数组元素的索引

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

考虑我有一系列选项,例如 [|Some 1;Some0;None;None;Some0|]我将使用 None 获取元素的索引值,在这种情况下,正确答案是 [|2;3|] .

我目前的想法是将数组更改为列表,然后使用递归函数将其抛出,但在这种情况下,我需要 mutable value计算索引,我不想使用可变的?

有没有其他解决办法

最佳答案

这是另一个解决方案:

[|Some 1;Some 0;None;None;Some 0|]
|> Array.indexed
|> Array.filter (fun (i, x) -> x.IsNone)
|> Array.map fst
作为优化,最后两行可以替换为单个 |> Array.choose (function (i, None) -> Some i | _ -> None) .
这是使用序列表达式的另一种方式:
let x = [|Some 1;Some 0;None;None;Some 0|]
[|for i = 0 to x.Length-1 do
if x.[i].IsNone then yield i|]

关于f# - 获取具有特定值的数组元素的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34321800/

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