[Haskell-beginners] exercise 3.10 in YAHT

Fernando Henrique Sanches fernandohsanches at gmail.com
Tue Jun 9 00:27:32 EDT 2009


It compiles fine here with GHC 6.8.2:

*Main> getNums
Enter a number (zero to stop):
4

Enter a number (zero to stop):
3

Enter a number (zero to stop):
0
[4,3]

Are you sure the problem is in this function?

Fernando Henrique Sanches


On Tue, Jun 9, 2009 at 1:05 AM, George Huber <geohuber at verizon.net> wrote:

> I'm currently working through "Yet Another Haskell Tutorial" by  H. Daume
> and have a question on how to proceed with his exercise 3.10.
>
> The exercise question is:  Write a program that will repeatedly ask the
> user for numbers until he types in zero, at which point it will tell him the
> sum of all the numbers, the product of all the numbers, and, for each
> number, its factorial.
>
> The hint that is given is to write an IO action that reads a number and
> either returns an empty list (if the number is zero) or recurses itself
> making a list from the number and the result of the recursive call.
>
> Daume presents and example of such a function:
>
> askForWords = do
>   putStrLn "Please enter a word:"
>   word <- getLine
>   if word == ""
>       then return []
>       else do
>           rest <- askForWords
>           return (word : rest)
>
> so, based on his example I created the function:
>
> getNums = do
>   putStrLn "Enter a number (zero to stop):";
>   strNum <- getLine
>   let num = read strNum
>   if num == 0
>       then return []
>       else do
>           rest <- getNums
>           return (num:rest)
>
> loading the file that contains the above function into GHCi (version 6.8.3)
> gives the following error "The last statement in a 'do' construct must be an
> expression"
>
> being a beginner, I'm at a loss at the cause of the error and how to fix it
> -- any suggestions?
>
> thanks,
> george
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/beginners/attachments/20090609/d8b741a9/attachment-0001.html


More information about the Beginners mailing list