Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 5th, 2012  |  syntax: None  |  size: 1.47 KB  |  hits: 11  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Haskell IO Function -> Type Match Error
  2. getVectorData vector1 =  do
  3.                 putStrLn "Enter dimension and coefficient separated by a space: Enter "Done" to move on to next vector: "
  4.                 appData <- getLine
  5.  
  6.                 if appData == "done" then
  7.                     putStrLn "That's it"
  8.                 else do
  9.                     createVectorTuple (words appData) : vector1
  10.                     getVectorData vector1
  11.  
  12. createVectorTuple :: [String] -> (String, Float)
  13. createVectorTuple vectorData = ((head vectorData) , (read (last vectorData) :: Float))
  14.        
  15. > ERROR file:.MainApp.hs:13 - Type error in final generator
  16. *** Term           : getVectorData vector1
  17. *** Type           : IO ()
  18. *** Does not match : [a]
  19.        
  20. getVectorData vector1 =  do
  21.     putStrLn "Enter dimension and coefficient separated by a space: Enter "Done" to move on to next vector: "
  22.     appData <- getLine
  23.  
  24.     if appData == "done" then
  25.         putStrLn "That's it"
  26.        
  27. else do
  28.         createVectorTuple (words appData) : vector1
  29.        
  30. (createVectorTuple (words appData)) : vector1
  31.        
  32. getVectorData vector1
  33.        
  34. let vector2 = createVectorTuple (words appData) : vector1
  35. getVectorData vector2
  36.        
  37. else
  38.    getVectorData $ createVectorTuple (words appData) : vector1
  39.        
  40. else do
  41.     let vector1 = createVectorTuple (words appData)
  42.     getVectorData vector1
  43.        
  44. if appData == "done" then do
  45.        putStrLn "That's it"
  46.        return vector1
  47.     else getVectorData (createVectorTuple (words appData) : vector1)