Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import qualified Data.Vector.Mutable as MV
- import Data.IORef
- import Control.Monad
- test1 n = do
- sum <- newIORef (0 :: Int)
- v <- MV.new (n+1)
- forM_ [0..n] $ \i ->do
- MV.write v i i
- forM_ [0..n] $ \i ->do
- MV.read v i >>= writeIORef sum
- readIORef sum
- test2 n = do
- sum <- newIORef (0 :: Int)
- vec <- MV.new (n+1) >>= newIORef
- forM_ [0..n] $ \i ->do
- v <- readIORef vec
- MV.write v i i
- forM_ [0..n] $ \i ->do
- v <- readIORef vec
- MV.read v i >>= writeIORef sum
- readIORef sum
- main = do
- test1 1000000 >>= print
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement