DDC compiler and effects; better than Haskell? (was Re: [Haskell-cafe] unsafeDestructiveAssign?)

Ben Lippmeier Ben.Lippmeier at anu.edu.au
Wed Aug 12 23:11:09 EDT 2009

Derek Elkins wrote:
>> The compiler is supposed to be able to reorder non-strict
>> evaluation to do optimisations, but that can't be done if effects
>> could happen.
> There's nothing special about non-strict evaluation that makes the
> antecedent true.  Replacing "non-strict" with "strict" gives just as
> much of a valid statement.  It is purity that allows (some) reordering
> of evaluation.
Here are two effectful statements that can safely be reordered.

  print "foo"
  x := 5

here are two more

  y := 2
  z := 3

(provided y and z don't alias)

Purity allows some reordering of evaluation, so does knowing that
two effectful computations won't interfere.


More information about the Haskell-Cafe mailing list