Isaac Dupree schrieb:
apfelmus wrote:
Mutable data structures in the sense of ephemeral (= not persistent =
update in-place) data structure indeed do introduce the need to work
in ST since the old version is - by definition - not available anymore.
Not in the quantum/information-theoretic sense, not necessarily. Consider
import Control.Monad.ST
import Data.STRef
main = print (runST (do
r <- newSTRef 1
notUnavailable <- readSTRef r
writeSTRef r 5
return notUnavailable
))
I'm not sure what this has to do with quantum mechanics ;) but you're
right, I forgot that. This means that either STRefs cannot be updated
in-place or that every read operation copies the contents or something
like that.
In any case, simple values like Ints or Bools are rather uninteresting,
update in-place is only important for larger structures like arrays.
Here, ST does updates in-place and retaining an array will copy it.
Regards,
apfelmus
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe