
I recommend that you read a guide/tutorial/book on Haskell first, before you try to implement this. Having a very limited knowledge about the language will only provide frustration when your solution doesn't work when you try to approach it naively, trying to use methods from a very different language. A widely recommended book is Learn You A Haskell [1]. After reading it, it should become fairly obvious how to approach your problem as well as how to solve it. You'll soon realise that there's simply no need for things such as `while' or a mutable array. To just hint towards what you might want is a function that takes a list (or list of lists, whatever your representation may be)) and returns a list with the next generation. You can then use any of the graphics libraries (or just print ASCII) to visualise the transformation. Again, this will be a lot easier when you actually study the basic language concepts first, instead of diving head-in and trying to hammer C++ into Haskell. [1] http://learnyouahaskell.com/ Mateusz Kowalczyk Oops, forgot to CC the mailing list. On 04/01/13 20:41, Емануела Моллова wrote:
Hello all! :) I'm new to Haskell and I would like to try to implement a simple version of Game of Life. I can imagine it in C++ for example, but I have a little difficulties in Haskell. All I can think for is a mutable array with all elements - 0 in the beginning and the user to be able to write in the coordinates of the cells, which are alive and this cells to become 1. Then to iterate through the array (but I'm not sure if I can iterate, there is no 'while' here) and to make the changes (but maybe I will need a new array for the changes, because when the first change happens, it will affect the result). Also I was thinking of how to make it visible, so I tried to make all 0-s red and all 1-s green, and after each iteration to clear the screen with ANSI so that it looks a bit like animation, but none of these ideas work... Here is an orientation in my ideas:
import Data.Array.IO http://Data.Array.IO import System.Console.ANSI
main :: IO () main = do arr <- newArray ((1,1), (10,10)) 0 :: IO (IOArray (Int, Int) Int) writeAraay arr (1,1) 1 a <- readArray (1,1) setSGR [SetColor Foreground Dull Red] putStr [a]
Could you please suggest me what is a good place to store the information about my cells (mutable, unmutable array, lists, tuples...) and any ideas and tutorials at all would be really appreciated! Thank you very much in advance! :)
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners