[Haskell-beginners] Errors and the compiler

Kim-Ee Yeoh ky3 at atamo.com
Fri Oct 12 04:27:32 CEST 2012


The bigger issue here is one's own reasoning about the code, never mind the
compiler's. Bob Harper writes eloquently on this topic:

http://existentialtype.wordpress.com/2011/03/15/*boolean*-blindness/

As for optimality issues, a naive compiler would wastefully examine the tag
twice in the else clause of:

if isNothing mExp
  then expr
  else f (fromJust mExp)


-- Kim-Ee


On Fri, Oct 12, 2012 at 3:48 AM, Christopher Howard <
christopher.howard at frigidcode.com> wrote:

> Point of curiosity: Does an error in a Haskell program have a negative
> impact on the compilers reasoning about or optimization of the code,
> even if said error is never reached in the control flow? For example,
> both of the following would have the same result:
>
> code:
> --------
> case mExp of
>   Nothing -> expr
>   Just x -> f x
>
> -- or...
>
> if isNothing mExp
>   then expr
>   else f (fromJust mExp)
> --------
>
> In my naive reasoning, I would think that in the latter case the use of
> fromJust introduces, from the compilers perspective, an additional
> possible outcome (an error being thrown). This presumably would
> complicate the compilers reasoning about the code, unless of course the
> compiler is smart enough to figure out that the error will never be
> reached.
>
> --
> frigidcode.com
> indicium.us
>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20121012/a8f10de5/attachment.htm>


More information about the Beginners mailing list