
PPS: Why does your mailinglist not set the Reply-To header? @Roman Cheplyaka: Sorry for double mailing. Am 13.01.2009 schrieb Roman Cheplyaka:
| f x y z = a + b*c + b + fun c | where a = x * y + z | b = c * fun x | c = a * b | fun x = x * x + 1
The query to die was "f 1 2 3".
Your program loops for the following reason: to compute f, you need to compute c to compute c, you need to compute b to compute b, you need to compute c again!
Haskell cannot solve equations (or, at least, not formulated in this way), so it understands definition of f as the rules to compute things like a, b, c. No wonder evaluation of f never terminates.
The problem is not it does not terminate. It terminates. GHCi terminates
inclusivly (maybe by simpathy? ;-)). As Chris Smith wrote it faults the
stack.
I tried to get the thing some smaller and therefor to the point,
I should have done this before I assume:
| let f = c where {c = c}
at "f",
| let f = f in f
kills GHCi immidiatelly.
| let f 0 = f 0 in f 0
simply does not terminate (as it should be).
MFG (With friendly regards)
Heiko Studt
PS: Funny way for quitting with two keystroke. ;-)
--
Heiko Studt