#5572: factorial.hs:3:12: Parse error in pattern: n + 1
--------------------------+-------------------------------------------------
Reporter: francisco | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: GHCi | Version: 7.0.3
Keywords: | Testcase:
Blockedby: | Difficulty:
Os: Linux | Blocking:
Architecture: x86 | Failure: GHCi crash
--------------------------+-------------------------------------------------
Description changed by simonpj:
Old description:
> Environment of work
> -------------------------------------------------------------------
> Ubuntu 11.10
>
> $ uname -a
> Linux fmgo-HP 3.0.0-12-generic #20-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
New description:
Environment of work
-------------------------------------------------------------------
{{{
Ubuntu 11.10
$ uname -a
Linux fmgo-HP 3.0.0-12-generic #20-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
--
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5572#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs