I created a file with the dividedBy example from Chapter 8.5 of "Haskell Programming from first principles" :dividedBy :: Integral a => a -> a -> (a, a)dividedBy num denom = go num denom 0where go n d count| n < d = (count, n)| otherwise = go (n - d) d (count + 1)I get the following error when I load into ghci:$ ghci chapter8_5-IntegralDivision.hs GHCi, version 8.2.1: http://www.haskell.org/ghc/ :? for helpLoaded GHCi configuration from /home/wink/.ghci[1 of 1] Compiling Main ( chapter8_5-IntegralDivision.hs, interpreted ) chapter8_5-IntegralDivision.hs:4:7: error: parse error (possibly incorrect indentation or mismatched brackets)|4 | | n < d = (count, n)| ^Failed, 0 modules loaded.λ>But if I put the "go" function on its own line:dividedBy :: Integral a => a -> a -> (a, a)dividedBy num denom = go num denom 0wherego n d count| n < d = (count, n)| otherwise = go (n - d) d (count + 1)It does compile:$ ghci chapter8_5-IntegralDivision.hs GHCi, version 8.2.1: http://www.haskell.org/ghc/ :? for helpLoaded GHCi configuration from /home/wink/.ghci[1 of 1] Compiling IntegralDivision ( chapter8_5-IntegralDivision.hs, interpreted ) Ok, 1 module loaded.Or I can put the "where" on the previous line:dividedBy :: Integral a => a -> a -> (a, a)dividedBy num denom = go num denom 0 wherego n d count| n < d = (count, n)| otherwise = go (n - d) d (count + 1)it also compiles:$ ghci chapter8_5-IntegralDivision.hs GHCi, version 8.2.1: http://www.haskell.org/ghc/ :? for helpLoaded GHCi configuration from /home/wink/.ghci[1 of 1] Compiling Main ( chapter8_5-IntegralDivision.hs, interpreted ) Ok, 1 module loaded.λ>Can someone shed light on what I've done wrong?-- Wink
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners