[Haskell-beginners] Please, help me for myFirstCode

Henk-Jan van Tuyl hjgtuyl at chello.nl
Tue Oct 26 09:34:13 EDT 2010


On Tue, 26 Oct 2010 08:36:58 +0200, Sok H. Chang <shaegis at gmail.com> wrote:

-----------------------------------------------------------------------------------------------------------------------
> import System
> import System.Random
>
> main = do myHeader <- readFile "C:\\Documents and Settings\\myHeader.txt"
> putStrLn $ myExtractSentence myHeader
> myExtractSentence file = ary !! ranNoInt
> where
>          ranNoInt =<< ranNo                        -- *mark
>          ranNo = randomRIO (0, n-1)
>          n = length ary
>          ary = lines file
> ----------------------------------------------------------------------------------------------------------------------
> There are two questions.
>
> 1) I've got following error message.
> Haskell>ghc --make Test01.hs -o Test
> [1 of 1] Compiling Main             ( Test01.hs, Test01.o )
>
> Test01.hs:10:9: parse error (possibly incorrect indentation)
>
> How can fix it?

The lay-out is wrong: putStrLn should be in the same column as the  
"myHeader" above it; avoid tabs to prevent unexpected lay-out problems.  
The lay-out could be like this:
-----------------------------------------------------------------------------------------------------------------------

main =
   do
     myHeader <- readFile "C:\\Documents and Settings\\myHeader.txt"
     putStrLn $ myExtractSentence myHeader

-----------------------------------------------------------------------------------------------------------------------


>
> 2) Is it OK at "*mark" line?
>

Note that ranNoInt is a value inside the IO monad, you cannot use directly  
as an index.

Regards,
Henk-Jan van Tuyl


-- 
http://Van.Tuyl.eu/
http://members.chello.nl/hjgtuyl/tourdemonad.html
--


More information about the Beginners mailing list