A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://hackage.haskell.org/packages/archive/base/4.6.0.0/doc/html/Data-STRef.html below:

Data.STRef

Description

Mutable references in the (strict) ST monad.

STRefs

data STRef s a Source

a value of type STRef s a is a mutable variable in state thread s, containing a value of type a

modifySTRef :: STRef s a -> (a -> a) -> ST s ()Source

Mutate the contents of an STRef.

Be warned that modifySTRef does not apply the function strictly. This means if the program calls modifySTRef many times, but seldomly uses the value, thunks will pile up in memory resulting in a space leak. This is a common mistake made when using an STRef as a counter. For example, the following will leak memory and likely produce a stack overflow:

print $ runST $ do
    ref <- newSTRef 0
    replicateM_ 1000000 $ modifySTRef ref (+1)
    readSTRef ref

To avoid this problem, use modifySTRef' instead.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4