首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从F#中的N个不同索引的序列中取N个元素

从F#中的N个不同索引的序列中取N个元素,可以使用以下代码实现:

代码语言:fsharp
复制
let takeNElements (n:int) (seq:seq<_>) =
    seq
    |> Seq.indexed
    |> Seq.filter (fun (i, _) -> i % n = 0)
    |> Seq.map snd

这个函数接受两个参数:n表示要取出的元素个数,seq表示输入的序列。函数首先使用Seq.indexed将序列中的每个元素与其索引一起生成一个新的序列,然后使用Seq.filter过滤出索引为n的倍数的元素,最后使用Seq.map将元素的索引去掉,只保留元素本身。

例如,对于以下序列:

代码语言:fsharp
复制
let seq = seq { 1..10 }

调用takeNElements 2 seq将返回seq [1; 3; 5; 7; 9],即从序列中取出索引为2的倍数的元素。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券