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 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