小编aes*_*dde的帖子

基准测试过滤器和分区

我认为,我正在测试partition列表函数的性能并得到一些奇怪的结果.

我们有,partition p xs == (filter p xs, filter (not . p) xs)但我们选择了第一个实现,因为它只对列表执行单次遍历.然而,我得到的结果表明,使用使用两次遍历的实现可能更好.

这是显示我所看到的最小代码

import Criterion.Main
import System.Random
import Data.List (partition)

mypartition :: (a -> Bool) -> [a] -> ([a],[a])
mypartition p l = (filter p l, filter (not . p) l)



randList :: RandomGen g => g -> Integer -> [Integer]
randList gen 0 = []
randList gen n = x:xs
  where
    (x, gen') = random gen
    xs = randList gen' (n - 1)

main …
Run Code Online (Sandbox Code Playgroud)

haskell ghc haskell-criterion

18
推荐指数
1
解决办法
325
查看次数

标签 统计

ghc ×1

haskell ×1

haskell-criterion ×1