這裏有什麼不對,懶惰評估呢?標杆管理和懶惰評估
teste.hs
module Main where
import Control.Parallel(par,pseq)
import Text.Printf
import Control.Exception
import System.CPUTime
import Data.List
import IO
import Data.Char
import Control.DeepSeq
--Calcula o tempo entre o inicio e o fim de rodagem do programa
time :: IO t -> IO t
time a = do
start <- getCPUTime
v <- a
end <- getCPUTime
let diff = (fromIntegral (end - start))/(10^12)
printf "Computation time: %0.3f sec\n" (diff :: Double)
return v
learquivo :: FilePath -> IO ([[Int]])
learquivo s = do
conteudo <- readFile s
return (read conteudo)
main :: IO()
main = do
conteudo <- learquivo "mkList1.txt"
mapasort <- return (map sort conteudo)
time $ mapasort `seq` return()
*Main> main
Computation time: 0.125 sec
mkList1.txt是在每100張隨機數的100名列表,更多或更少的這樣的列表:[[23,45 ,89,78,89 ...],[4783,44,34 ...] ...]
我做了測試打印mapasort:
- 時間$打印(「排序山島地圖=」,mapasort)
和計算時間大大增加,所以我認爲什麼是錯的。
Computation time: 1.188 sec
感謝
您提到安裝Criterion時遇到問題。如果你使用freenode(IRC)並加入#haskell頻道,那麼可以幫助你安裝它。 – 2010-10-21 17:45:22
TomMD,我會做的,謝謝 – Gmp 2010-10-21 20:42:04