packages feed

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