1
我有几个函数,主要是输出信息。评估任何函数(... - > IO())函数
我需要来测量它们的执行时间。
目前,它的完成这样的:
start <- getCurrentTime
putStrLn $ show $ findNthMinLinear (getTestArrayOfLength (read arrlength :: Int)) 4
stop <- getCurrentTime
print $ diffUTCTime stop start
我想包装每个功能的函数1.记住时间2.计算函数3.经历了两场想起倍
之间的时间4.打印的区别问题是我不知道如何传递一个函数没有先评估它。
我的猜测是,如果我写的(< 5)为例,这是我创建了返回功能,没有真正的工作会做一个函数,直到我通过最后一个参数我猜? 然后,我可以写
printAndMeasure :: (a -> IO()) -> IO()
...
printAndMeasure \x -> (getTestArrayOfLength (read arrlength :: Int)) 4
但它是一个草率的解决方案,因为我并不真的需要这个X以外的其他被执行保持功能。
您应该使用[Criterion](http://hackage.haskell.org/packages/archive/criterion/latest/doc/html/Criterion-Main.html)进行基准测试。 – kennytm
是什么让你觉得通过函数来评估它?这不会发生在使用一流功能的语言中,当然也不是懒惰的Haskell。无论如何,你甚至不谈论这里的函数,而是关于_monadic'IO' actions_。 – leftaroundabout