Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
• Higher order functions<br />
• Parametric polymorphism<br />
• Function definition by pattern matching<br />
• Pattern matching desugaring<br />
• Guards to distinguish sub-cases<br />
• Type signature must subsume inferred type<br />
• List syntactic sugar ( value/pattern syntax )<br />
Clearly we’re going to need a much more sophisticated design, and we’ll likely be doing quite a bit more<br />
bookkeeping about our program during compilation.<br />
Scope<br />
Considering our project is intended to be a simple toy language, we are not going to implement all<br />
of <strong>Haskell</strong> 2010. Doing so in its entirety would actually be a fairly involved effort. However we will<br />
implement a sizable chunk of the functionality, certainly enough to write non-trivial programs and<br />
implement most of the standard Prelude.<br />
ings we will implement:<br />
• Indentation sensitive grammar<br />
• Pattern matching<br />
• Algebraic datatypes<br />
• Where statements<br />
• Recursive functions/datatypes<br />
• Operator sections<br />
• Implicit let-rec<br />
• List and tuple sugar<br />
• Records<br />
• Custom operators<br />
• Do-notation<br />
• Type annotations<br />
• Monadic IO<br />
• Typeclasses<br />
• Arithmetic primops<br />
• Type synonyms<br />
• List comprehensions<br />
ings we will not implement are:<br />
• Overloaded literals<br />
• GADTs<br />
• Polymorphic recursion<br />
105