Seq.map(fun -6ren">
gpt4 book ai didi

F# 使用 Seq.map 创建更小的元组

转载 作者:行者123 更新时间:2023-12-01 06:19:34 25 4
gpt4 key购买 nike

我写了这个 F# 代码:

let tuples = [|("A",1,0);("A",2,3);("A",3,6)|]
let tupleSubset =
tuples
|> Seq.map(fun values ->
values.[0],
values.[2])
printfn "%A" tupleSubset

我得到:运算符'expr.[idx]'已根据此程序点之前的信息用于不确定类型的对象。考虑添加更多类型约束

谁能告诉我我做错了什么?

最佳答案

解决您遇到的错误的简单方法如下:

let tuples = [|("A",1,0); ("A",2,3); ("A",3,6)|]
let tupleSubset = tuples |> Seq.map (fun (a, b, c) -> a, b)
printfn "%A" tupleSubset

至于为什么会出现错误:请注意,您尝试使用 values.[0] 的索引取消引用类型和 values.[1]适用于数组、字典等,但不适用于元组,而每个 values类型为 string * int * int .

由于您不需要元组的第三个元素,您甚至可以选择不将其绑定(bind)到符号,方法是编写如下第二行:
let tupleSubset = tuples |> Seq.map (fun (a, b, _) -> a, b)

关于F# 使用 Seq.map 创建更小的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16845716/

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