我是Haskell的新手,为什么会得到以下代码中的错误信息(在Haskell中类型“[]”与“IO”无法匹配)。
在主函数中,我只需要算法运行时间而不是结果。
只想测量算法时间。
在主函数中,我只需要算法运行时间而不是结果。
只想测量算法时间。
qsort1 :: Ord a => [a] -> [a]
qsort1 [] = []
qsort1 (p:xs) = qsort1 lesser ++ [p] ++ qsort1 greater
where
lesser = [ y | y <- xs, y < p ]
greater = [ y | y <- xs, y >= p ]
main = do
start <- getCurrentTime
qsort1 (take 1000000 $ randomRs (1, 100000) (mkStdGen 42))
end <- getCurrentTime
print (diffUTCTime end start)
{-#LANGUAGE BangPatterns#-}
。 - SibiBangPatterns
在这里不会导致完全评估?尽管我认为应该使用标准进行基准测试。 @MatejKr 它是一个用于基准测试的 Haskell 库。 - Sibi