关闭

测试 PSeq

9251人阅读 评论(0) 收藏 举报

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:858999次
    • 积分:19117
    • 等级:
    • 排名:第454名
    • 原创:40篇
    • 转载:40篇
    • 译文:40篇
    • 评论:41条
    最新评论