13 lines
317 B
Haskell
13 lines
317 B
Haskell
import Control.Monad
|
|
import Control.Monad.ST
|
|
import Data.STRef
|
|
|
|
sum' ref_i lo hi term =
|
|
return sum `ap`
|
|
mapM (\i -> writeSTRef ref_i i >> term) [lo..hi]
|
|
|
|
foo = runST $ do
|
|
i <- newSTRef undefined -- initial value doesn't matter
|
|
sum' i 1 100 $ return recip `ap` readSTRef i
|
|
|
|
main = print foo
|