定義して入力し、(整数) 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()
明らかに、私の実際のコードは、(別の) 'a' 整数配列を計算するのに時間がかかります。バイト文字列を使用して出力セクションを高速化したいのですが、その方法がわかりません。