gpt4 book ai didi

f# - 从序列、元组中提取元素

转载 作者:行者123 更新时间:2023-12-02 08:34:51 24 4
gpt4 key购买 nike

假设我有这个:

let coor = seq { ... }
// val coor : seq<int * int> = seq[(12,34); (56, 78); (90, 12); ...]

我正在尝试获取序列中第二个元素的第一个数字的值,在本例中为 56。查看 MSDN Collection API 引用,Seq.nth 1 coor返回 (56, 78) , 类型 seq <int * int> .我如何从中得到 56?

最佳答案

我建议你阅读元组文章: http://msdn.microsoft.com/en-us/library/dd233200.aspx

一些异常(exception)可能会阐明问题:

函数fst用于访问元组的第一个元素:

(1, 2) |> fst // returns 1

函数snd用于访问第二个元素

(1, 2) |> snd // returns 2

为了从更宽的元组中提取元素,您可以使用以下语法:

let _,_,a,_ = (1, 2, 3, 4) // a = 3

要在各种集合中使用它(以及传递给集合函数的 lambda),让我们从以下顺序开始:

let s = seq {
for i in 1..3 do yield i,-i
}

我们最终得到

seq<int * int> = seq [(1, -1); (2, -2); (3, -3)]

假设我们只想提取第一个元素(注意 lambda 的参数):

s |> Seq.map (fun (a, b) -> a)

或者更短:

s |> Seq.map fst

最后让我们回到您的问题。

s |> Seq.nth 1 |> fst

关于f# - 从序列、元组中提取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22829200/

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