[Haskell-beginners] MVar and Par ..
mozhgan_kch at yahoo.com
Tue Dec 16 05:45:23 EST 2008
Hi .. Hope you are doing well . I've just joined this group coz I am really a beginner and have no idea that what I have to do !
Recently, I am struggling to do some simple experiment with haskell language about parallelism and wrong answers that we can get while using a shared variable .
I tried to write a simple program, for example calculationg 'n=n+1' few times.And then I tried to do it in parallel by using 'par' and 'pseq' . The aim was to get the wrong answer because we have to share a variable here,and without using 'MVar' function we will get the wrong answer for the calculation .
I don't know how to write it in parallel in order to get a wrong answer when we don't use MVar,because we have a shared variable here. I read about MVars as well,but also I don't know how to combine MVar and Par together to get the program to work.
I wrote this :
module Main where f :: Int -> Int -> Int
f i n = g 1 i n where g x i n | x <= i = g (x+1) i (n+1) | otherwise = n main :: IO ()
main = do putStrLn "starting..." let r = f 10 5 putStrLn (show r) putStrLn "finished"
I want to make to work in parallel by using 'Par'.And also use MVar for this simple example to work.
All of the example about MVar are a little bit complicated and I couldn't figure it that how can I write one,the same !
Can any one help me with this ? I want a simple example that I can feel the need of MVar when I run my program in parallel and while I am using a shared variable.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beginners