ArrayRef-0.1: Examples/Array/Boxed.hs
-- This example demonstrates using of Array, IOArray and STArray
import Control.Monad.ST
import Data.ArrayBZ.Boxed
main = do
-- This section demonstrates using of Array
test_Array |> print
-- This section demonstrates using of IOArray
test_IOArray >>= print
-- This section demonstrates using of STArray
runST test_STArray |> print
-- Using Array
test_Array =
let array = listArray (1,10) [1..10] :: Array Int Double
elements = elems array
in (sum elements)
-- Using IOArray
test_IOArray = do
array <- newListArray (1,10) [1..10] :: IO (IOArray Int Double)
elements <- getElems array
return (sum elements)
-- Using STArray
test_STArray = do
array <- newListArray (1,10) [1..10] :: ST s (STArray s Int Double)
elements <- getElems array
return (sum elements)
-- Helper operation
a |> b = b a