gpt4 book ai didi

arrays - F# array_chunk 用于序列

转载 作者:行者123 更新时间:2023-12-01 22:57:13 25 4
gpt4 key购买 nike

我在制作序列时遇到一些问题。基本上我需要将一个序列切成数组序列。 Seq.windowed 几乎可以做到这一点,但我不想要重复的元素。

我可以通过首先将所有内容读入数组来获得我想要的内容,但我宁愿使用序列。

let array_chunk s (a:int[]) =
Array.init (a.Length / s) (fun i -> Array.sub a (i * s) s)

someSequence |> Seq.to_array |> array_chunk 5

最佳答案

这个答案可能会被埋没,但这是我对这个问题的看法:

let chunk n xs = 
xs
|> Seq.mapi(fun i x -> i/n, x)
|> Seq.groupBy fst
|> Seq.map (fun (_, g) -> Seq.map snd g)

优点:

  • 仅使用 seq,不使用数组
  • O(n) 运行时间。不像 Seq.skip/take 解决方案那样 O(n^2)
  • Seq.length 不必是 n 的倍数
  • 小而容易理解?

缺点:

  • 可能不如命令式/可变循环高效

关于arrays - F# array_chunk 用于序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/716452/

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