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