[Haskell-cafe] The infamous evil monomorphism restriction (was: A bit of a shock - Memoizing functions)

Peter Verswyvelen bugfact at gmail.com
Fri Mar 27 19:51:42 EDT 2009


>From a previous email in the beginners list I more or less understood that
the monomorphism restriction will not exist anymore in Haskell Prime.

Is this correct?

On Fri, Mar 27, 2009 at 10:32 PM, Jonathan Cast
<jonathanccast at fastmail.fm>wrote:

> On Fri, 2009-03-27 at 14:26 -0700, Kirk Martinez wrote:
> > Your powersOfTwo function, since it gets memoized automatically (is
> > this the case for all functions of zero arguments?),
>
> It is the case for all functions which have zero arguments *at the time
> they are presented to the code generator*.  The infamous evil
> monomorphism restriction arises from the fact that overloaded
> expressions, such as
>
>    negative_one = exp(pi * sqrt(-1))
>
> look like functions of zero arguments, but are not, and hence do not get
> memoized.  This behavior was considered sufficiently surprising, when it
> was discovered in early Haskell compilers, that the construct was
> outlawed from the language entirely.
>
> jcc
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090328/e22d9d9a/attachment.htm


More information about the Haskell-Cafe mailing list