Jump to content

Time a function: Difference between revisions

→‎{{header|Haskell}}: Adjusted name to side-step wiki format glitch
(Added Kotlin)
(→‎{{header|Haskell}}: Adjusted name to side-step wiki format glitch)
Line 905:
 
=={{header|Haskell}}==
<lang haskell>import System.CPUTime (getCPUTime)
 
-- We assume the function we are timing is an IO monad computation
timeIt :: (Fractional c) => (a -> IO b) -> a -> IO c
timeIt action arg = do
do startTime <- getCPUTime
action arg
finishTime <- getCPUTime
return $ fromIntegral (finishTime - startTime) / 1000000000000
 
-- Version for use with evaluating regular non-monadic functions
timeIt'timeIt_ :: (Fractional c) => (a -> b) -> a -> IO c
timeIt'timeIt_ f = timeIt (\x -> f x (`seq` return ()) . f)</lang>
 
===Example===
9,659

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.