从F#中的N个不同索引的序列中取N个元素,可以使用以下代码实现:
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
将元素的索引去掉,只保留元素本身。
例如,对于以下序列:
let seq = seq { 1..10 }
调用takeNElements 2 seq
将返回seq [1; 3; 5; 7; 9]
,即从序列中取出索引为2的倍数的元素。
领取专属 10元无门槛券
手把手带您无忧上云