Anonymous user
Jensen's Device: Difference between revisions
restore Haskell implementation: a list comprehension is certainly more idiomatic, but it isn't call-by-name
(restore Haskell implementation: a list comprehension is certainly more idiomatic, but it isn't call-by-name) |
|||
Line 162:
=={{header|Haskell}}==
<pre>
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
</pre>
Output: 5.187377517639621
|