Hello, café: I am trying to use more than one array with runSTUArray but I don't seem to be able to understand how it works. My first try is this:
test1 n = runSTUArray $ do a <- newArray (1, n) (2::Int) b <- newArray (1, n) (3::Int) forM_ [1..n] $ \i -> do v <- readArray a i writeArray b i (v+1) return b but it does not work. However, when I write test2 n = runSTUArray $ do let createArray v n = newArray (1, n) (v::Int) a <- createArray 2 n b <- createArray 0 n forM_ [1..n] $ \i -> do v <- readArray a i writeArray b i (v+1) return b everything is fine although I expected the two versions to be equivalent. To further complicate matters, the following createArray v n = newArray (1, n) (v::Int) test3 n = runSTUArray $ do a <- createArray 2 n b <- createArray 3 n forM_ [1..n] $ \i -> do v <- readArray a i writeArray b i (v+1) return b does not work either. Where can I find an explanation for this behaviour? Furthermore, what I am after is to use two arrays with different types (Int and Bool), is it possible? Thanks in advance, Juan Miguel -- Juan Miguel Vilar Torres Profesor titular de universidad Vicedirector de la ESTCE para ITIG e ITIS Departamento de Lenguajes y Sistemas Informáticos Escuela Superior de Tecnología y Ciencias Experimentales Universitat Jaume I Av. de Vicent Sos Baynat s/n 12071 Castelló de la Plana (Spain) Tel: +34 964 72 8365 Fax: +34 964 72 8435 jvi...@lsi.uji.es _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe