factorial.hs:3:12: Parse error in pattern: n + 1
Environment of work
Ubuntu 11.10
$ uname -a Linux fmgo-HP 3.0.0-12-generic #20 (closed)-Ubuntu SMP Fri Oct 7 14:50:42 UTC 2011 i686 i686 i386 GNU/Linux
$ ghci GHCi, version 7.0.3
$gcc -v
- ...
gcc versión 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)
The problem
I composed the function
factorial :: Integer -> Integer factorial 0 = 1 factorial (n+1) = (n+1) * factorial n
in the file "factorial.hs". So I make
$ ghci factorial
and then ghci produces the message
GHCi, version 7.0.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. [1 of 1] Compiling Main ( factorial.hs, interpreted )
factorial.hs:3:12: Parse error in pattern: n + 1 Failed, modules loaded: none. Prelude>
therefore I changed the content of factorial.hs to
fact :: Integer -> Integer fact 0 = 1 fact n = n * fact (n-1)
now I make
Prelude> :l factorial.hs
obtaining the dialog
[1 of 1] Compiling Main ( factorial.hs, interpreted ) Ok, modules loaded: Main.
- Main>
but "the problem" is that the simple computation
- Main> factorial (-1)
produces
- ** Exception: stack overflow
In GHCi version 6.10.4 there is no bug ... or problem
Trac metadata
Trac field | Value |
---|---|
Version | 7.0.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | GHCi |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | azufaifa@gmail.com |
Operating system | |
Architecture |