2

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

4

0 に答える 0