测试 PSeq
#light
#r @"C:\Program Files\FSharpPowerPack-2.0.0.0\bin\FSharp.PowerPack.Parallel.Seq.dll"
//
// PSeq 在 Microsoft.FSharp.Collections 这个命名空间下
open Microsoft.FSharp.Collections
let nums = [|1..500000|]
let isPrime n =
let rec check i =
i > n/2 || (n % i <> 0 && check (i + 1))
check 2
let finalDigitOfPrimes =
nums
|> Seq.filter isPrime
|> Seq.groupBy (fun i -> i % 10)
|> Seq.map (fun (k, vs) -> (k, Seq.length vs))
|> Seq.toArray
let finalDigitOfPrimesP =
nums
|> PSeq.filter isPrime
|> PSeq.groupBy (fun i -> i % 10)
|> PSeq.map (fun (k, vs) -> (k, Seq.length vs))
|> PSeq.toArray
==========
val finalDigitOfPrimes : (int * int) [] =
[|(1, 10387); (2, 1); (3, 10382); (5, 1); (7, 10403); (9, 10365)|]
val finalDigitOfPrimesP : (int * int) array =
[|(1, 10387); (9, 10365); (2, 1); (3, 10382); (5, 1); (7, 10403)|]