Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
Get a full dump of the dictionary:
List of Names
- Language type:
F - Functional or lambda-based
Miranda is an interpreted pure-functional
language, intended both for teaching
functional programming and for application
As a pure functional language, Miranda
has no conventional imperative control
Instead, Miranda 'scripts' consist of
a set of equations that define various
data structures and operations.
Data types available in Miranda include
booleans, identifiers (symbols),
lists, tuples, and functions.
Miranda is strongly typed, in the sense
that all functions enforce type constraints.
Lists are extremely important in Miranda,
as they are in many functional languages.
Miranda provides a powerful
definition syntax for lists called
Unlike Lisp and the original version of ML,
Miranda uses lazy evaluation for all
expressions. This allows the language
system to support infinite lists and
Miranda supports many of the higher-order
features expected of an advanced
functional language: curried functions,
sophisticated pattern matching on
rule application, and definition of
The syntax of Miranda is very terse and
compact. The language has no
syntax, everything is an expression.
The basic syntax for function application
is prefix, but infix notation can also
be used in most cases.
The only implementation of Miranda is
the commercial one, it is available for
most Unix systems including Linux.
Information about Miranda is fairly easy to
find on the web, but the language system
does not seem to be available for download
anywhere. Apparently it must be
purchased commercially. There are several
good computer science books about Miranda.
David Turner, University of Kent, 1985.
- See Also:
Miranda began as an academic project at the
University of Kent, but was later
commercialized by Research Software Ltd.
Typically, Miranda is used as an interactive
text-based interpreter, with the programmer
entering commands and expressions directly
and the system evaluating or storing them.
Of course, the system can also import source
The most recent version of the commercial
Miranda seems to be 2.02, dating to 1995.
- Sample code:
|| Sorting with the comparison function as a parameter
|| (adapted from code example by Simon Thompson)
sortG :: (* -> * -> bool) -> [*] -> [*]
sortG comp (a:x)
= sortG comp smaller ++ [a] ++ sortG comp larger
smaller = [ b | b<-x ; comp b a ]
larger = [ b | b<-x ; comp a b ]
|| Example Use
CompInt :: (* -> * -> bool)
CompInt m n = (m < n)
SortG CompInt [3,5,0,12,8,43,7]
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is email@example.com
[Ziring MicroWeb Home]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.