(From the Latin for "admirable", also the heroine of Shakespeare's "Tempest") A lazy
purely functional programming language and interpreter
designed by David Turner
of the University of Kent in the early 1980s and implemented as a product of his company, Research Software Limited. Miranda combines the main features of KRC
with strong typing
similar to that of ML
It features terse syntax
using the offside rule for indentation. The type
of an expression is inferred from the source
by the compiler
but explicit type declarations are also allowed. It has nested pattern-matching, list comprehensions and modules
. It uses operator sections rather than lambda abstractions. User types are algebraic, and in early versions could be constrained by laws
It is implemented using SKI combinator reduction
. Originally implemented for Unix
, there are versions for most UNIX-like platforms including Intel PC under Linux
. The KAOS
operating system is written entirely in Miranda.
Translators from Miranda to Haskell
(mira2hs) and to LML
(mira2lml) are available at (http://foldoc.org/pub/misc/). Non-commercial near-equivalents of Miranda include Miracula
["Miranda: A Non Strict Functional Language with Polymorphic Types" (http://miranda.org.uk/nancy.html), D.A. Turner, in Functional Programming Languages and Computer Architecture, LNCS 201, Springer 1985].
["An Overview of Miranda" (http://miranda.org.uk/overview.pdf), D. A. Turner, SIGPLAN Notices, 21(12):158--166, December 1986].
["Functional Programming with Miranda", Ian Holyer, Pitman Press 0-273-03453-7].