Andy,

Just a quick hack:

  module Main where

  import List             -- ADDED
  import Graphics.UI.GLUT -- ADDED

  readVecs :: String -> IO [Vector3 GLfloat]
  readVecs f =
     do str <- readFile f
        -- FIXED LAYOUT:
        let mkVec [x,y,z] = Vector3 x y z
let format line = "[" ++ concat (intersperse "," (words line)) ++ "]"
          -- ADDED
        return $ map (mkVec . read . format)  $ lines str -- CORRECTED

So, the error message you got was layout-related, i.e., you needed to move the last two lines of you programs two positions to the left. Furthermore, you had to import the HOpenGL modules. Even then, your code did not type check, so I replaced the application of words in the last line by an application to a user-defined function format, that not even makes it type check but also makes it actually reformat the input so it can be consumed by read. I used intersperse to do this, so I also needed to import the List module.

But, seriously, do you really think this is the way to learn Haskell?

And just one last question - If the file looked like this (with column headings )

Name  Ethnicity  Age
Mary_Smith  NZ_European  27
Joe_Brown    NZ_European  34
John_Watson  Canadian  45
Mike_Tangaroa  NZ_Maori  38

- what change would the above code need to run?

I hope you don't mind I leave this to you as an exercise.

HTH,

Stefan

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to