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