Qu'est-ce qui ne va pas ici, est-ce que l'évaluation paresseuse aussi?L'analyse comparative et l'évaluation paresseuse
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 est une liste de 100 listes de 100 nombres aléatoires dans chaque, plus ou moins comme ceci: [[23,45 , 89,78,89 ...], [4783, 44, 34 ...] ...]
Je l'ai fait un test d'impression mapasort:
- temps print $ ("Tri carte usando =", mapasort)
Et le temps de calcul, je pense considérablement augmenté si quelque chose ne va pas.
Computation time: 1.188 sec
Merci
Vous avez mentionné avoir des problèmes pour installer Criterion. Si vous allez sur freenode (IRC) et que vous rejoignez les gens du canal #haskell, vous pouvez l'installer. –
TomMD, je vais le faire, merci – Gmp