firstly, i'm impressed by the quick responses ...
what i intended to test for was an appropriate program error. I didn't
expect a non-terminating one though. I don't believe this same
output occurs in the 1.4 implementation -- although it does seem to halt
for a while before printing a 2 line program error.
ash
btw, where abouts in the world am i sending these emails?
> Thanks for the output. I still stand by my original comments,
> though. From the semantic of Haskell, and given your definition
> of f', I believe
>
> f' [1..3]
>
> is not valid, and should give an error at runtime.
> Perhaps I'm misunderstanding you.
>
> What are you trying to do with ~[x] ?
> What do you expect f' [1..3] to do?
>
> Andy
>
On Mon, 6 Sep 1999, Andy Gill wrote:
> ASH HAFEZ wrote:
> >
> > Hi Andy,
> >
> > I think you may have misunderstood the error message i was referring to
> >
> > here's a screen dump...
> >
> > Prelude>
> > Prelude>
> > Prelude> f' [1..3] where f' ~[x] = [x]
> > [
> > Program error: {v1889 [1,2] ++ takeWhile (flip (Ord_class.Ord_v1797
> > (Make.Ord instEq_v32 primCmpInteger (Ord_class.Ord_v1796 (Make.Ord
> > instEq_v32 primCmpInteger (Ord_class.Ord_v1796 (Make.Ord instEq_v32
> > primCmpInteger (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
>
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class.Ord_v1796 (Make.Ord instEq_v32 primCmpInteger
> > (Ord_class{Interrupted!}
> >
>