Hi all -

I'm trying to run some code posted recently on this list ( the exact URI is as follows -
http://comments.gmane.org/gmane.comp.lang.haskell.cafe/7860
( The reason I'm doing this is because this code is quite close to what I'm trying to do. )

Anyway, I saved the code in a file called andy1.hs . The exact code is as follows -

module Main where
readVecs :: String -> IO [Vector3 GLfloat]
readVecs f =
   do str <- readFile f
        let mkVec [x,y,z] = Vector3 x y z
        return $ map (mkVec . read . words)  $ lines str

( I can see what the code seems to be doing : it's reading the file line-by-line, splitting it into "words", and filling the vectors with them. Not too bad a guess for a "Haskellista" of a few minutes standing ..... ;-)

I created a small file with whitespace-separated floats so that I could run the above code.
This data file looks like this -
23.596 38.201 79.903
32.647 65.559 15.438
21.648 34.978 90.089
55.587 76.763 96.634

When I run the above code (in GHCi , version 6.4) I get the message -
Prelude> :load andy1
Compiling Main             ( andy1.hs, interpreted )

andy1.hs:4:7: The last statement in a 'do' construct must be an expression
Failed, modules loaded: none.

So - I'm just wondering if anyone can see how the above code should be fixed in order to run. 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?
Very many thanks in advance ...
- Andy





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

Reply via email to