CSE 341 - Programming Languages - Autumn 2006

Miranda and Functional Programming

Lecture Notes


Online and Other Resources

There are also some Miranda texts on reserve in the Engineering Library.

Other Functional Languages

We won't be using these languages in 341 this year, but if you're interested, here are some links.  (Other 341 instructors typically use ML rather than Miranda.)


Haskell is another pure functional language, with normal-order evaluation and a similar syntax, which drew on Miranda for its design.  A big advantage is that it is freely available for download on a variety of platforms.  However, it is more complex than Miranda, and 341 students in the past found it a struggle to deal with its type system.


ML has a polymorphic type system as well.  Unlike Miranda, it uses call-by-value semantics.  It is also not a pure functional language - it has an imperative component (which is pretty isolated from the pure functional parts, however).

The two main sites for SMLNJ are smlnj.org and standardml.org. To install SMLNJ on your own machine, go to the main page on smlnj.org.  Tutorials can be found at http://smlnj.org/doc/literature.html#tutorials and documentation can be found at http://www.standardml.org/Basis. However, the documentation is fairly advanced.