我的示例代码用于定义和填充然后输出(整数)IOArray:
{-# OPTIONS_GHC -O2 #-}
{-# LANGUAGE BangPatterns #-}
import Data.Array
import Data.Array.IO
for_ xs f = mapM_ f xs
a_size = 10000 :: Int
main :: IO()
main = do
a <- newArray (0,a_size-1) 1 :: IO (IOArray Int Integer)
for_ [3,4..(a_size-1)] $ \i -> do -- generate the a array
t1 <- readArray a (i-3)
t2 <- readArray a (i-2)
t3 <- readArray a (i-1)
writeArray a i (4*t1+t2+2*t3)
for_ [0,1..(a_size-1)] $ \i -> do -- print the terms of array
temp <- readArray a i
print(temp)
return()
显然,我的真实代码计算(另一个)'一个'整数数组的时间更长。我想使用bytestring来加速输出部分,但不知道该怎么做。