Difference between revisions of "Discus"

From HaskellWiki
Jump to navigation Jump to search
Line 2: Line 2:
   
 
=== Disciple vs Haskell ===
 
=== Disciple vs Haskell ===
* Strict EvaluationOrder is the default, laziness is introduced explicitly.
+
* Strict [[DDC/EvaluationOrder|EvaluationOrder]] is the default, laziness is introduced explicitly.
 
* All data objects support DestructiveUpdate, without the need for Ref types.
 
* All data objects support DestructiveUpdate, without the need for Ref types.
 
* Type directed FieldProjections complement type classing.
 
* Type directed FieldProjections complement type classing.

Revision as of 11:47, 16 March 2008

Disciple is an explicitly lazy dialect of the functional programming language Haskell.

Disciple vs Haskell

  • Strict EvaluationOrder is the default, laziness is introduced explicitly.
  • All data objects support DestructiveUpdate, without the need for Ref types.
  • Type directed FieldProjections complement type classing.
  • Supports a try-catch ExceptionMechanism.
  • The TypeSystem ensures that SideEffects and DestructiveUpdate play nicely with laziness.

Some example code, and it's output.

The Disciplined Disciple Compiler (DDC)

  • Uses a typed core language which includes effect, closure, region and mutability information. (example)
  • This extended type information is used to allow code-transformation style optimizations in the presence of side effects and mutable objects.
  • Produces standard C99, so is highly portable.
  • Is in a usable alpha state.

Get the Source

Use darcs to get the repo from haskell.org

   darcs get http://code.haskell.org/~benl/disciple-HEAD

Check the ReleaseNotes and INSTALL instructions.

Contact the Maintainers