我正在尝试将 Seq.cache 与我制作的函数一起使用,该函数返回一个不包括数字 1 的素数序列,最多为 N。我无法弄清楚如何将缓存的序列保持在范围内但仍然使用它在我的定义中。
let rec primesNot1 n =
{2 .. n}
|> Seq.filter (fun i ->
(primesNot1 (i / 2) |> Seq.for_all (fun o -> i % o <> 0)))
|> Seq.append {2 .. 2}
|> Seq.cache
关于如何使用 Seq.cache 来加快速度的任何想法?目前,它一直在范围内下降,并且只会降低性能。