Hi ..

Hope you are doing well . I've just joined this group. 
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.Regards;
Mozhgan

_________________________________________________________________
News, entertainment and everything you care about at Live.com. Get it now!
http://www.live.com/getstarted.aspx
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to