Talk:OpenGLTutorial2

From HaskellWiki
Revision as of 21:58, 8 March 2011 by Emacstheviking (talk | contribs) (Added missing () in idle function.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Excellent article and it got me going with OpenGL and Haskell but there is a small mistake that prevents the successful compilation at the point "3.1 Animation" in the revised Display.hs, function 'idle' ...

idle angle = do
  a <- get angle
  angle $=! a+0.1
  postRedisplay Nothing

To get it to work on Ubuntu with ghc 6.12.3 I had to change it by enclosing the update in parentheses like so,

idle angle = do
  a <- get angle
  angle $=! (a+0.1)
  postRedisplay Nothing

which also led me to read about IORef and also realise that I could have used this in place of the $=! which once again shows that when you have to work harder and solve little things like this for yourself it helps you learn even better. Here's the alternative way to update the IORef containing the rotation angle.

  updateIORef angle (a+0.1)

Hope that helps somebody else! EmacsTheViking