[Haskell-cafe] loop problem
Roelof Wobben
r.wobben at home.nl
Sat May 10 15:22:14 UTC 2014
Mateusz Lenik schreef op 10-5-2014 17:01:
> Hi,
>
> There are several issues with the code:
>
> - type annotation states that the function returns 'IO ()', while on the else
> branch 'IO Int' is returned. To fix it you should either change the returned
> type to 'IO Int' or replace 'return n' with 'return ()';
> - in do notation you have to use let syntax, so 'x n = n * n' should be
> 'let x n = n * n';
> - this brings us to another issue in line 'putStrLn (show x n)', which is
> equivalent to 'putStrLn ((show x) n)'. You should put parentheses explicitly
> to fix it, or change x definition to 'let x = n * n', so that you can just
> write 'putStrLn (show x)'.
>
> Cheers!
> Mateusz
>
>
Is it valid Haskell if I change the putStrln to putStrln ( show n * n)
so I do not have to use the let command.
Another question if I change return n with return () does the loop ever
end. My feeling says not because the value of n is never updated for
the loop.
Roelof
More information about the Haskell-Cafe
mailing list