现在的位置: 首页 > 综合 > 正文

测试 PSeq

2014年07月06日 ⁄ 综合 ⁄ 共 776字 ⁄ 字号 评论关闭

测试 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)|]

抱歉!评论已关闭.