Monte Carlo methods: Difference between revisions
m
→{{header|Haskell}}
Line 1,298:
<lang haskell>import Control.Monad (foldM, (>=>))
import System.Random (randomRIO)
------- APPROXIMATION TO PI BY A MONTE CARLO METHOD ------
monteCarloPi :: Int -> IO Double
Line 1,305 ⟶ 1,307:
where
rnd = randomRIO (0, 1) :: IO Double
go a x = rnd >>= (\rx -> rnd >>= (pure . flip (f rx) a))▼
f x y
| 1 > x ** 2 + y ** 2 = succ
| otherwise = id
--------------------------- TEST -------------------------
▲ rnd >>= (\rx -> rnd >>= (pure . flip (f rx) a))
main :: IO ()
main =
|