Miranda is a pure, non-strict, polymorphic, higher order functional programming language designed by David Turner in – 6. The language was widely taken up, both for research and for teaching, and had a strong influence on the subsequent development of the field, influencing in particular the design of Haskell , to which it has many similarities. Miranda is however a simpler language. Here is a short description . For more detail you can read the Overview paper below, look at these examples of Miranda scripts, or read the definitions in the Miranda standard environment . DOWNLOAD
(bit compatible source release
(NEW). Why the name Miranda? Browsable version of Miranda system manual Browsable version of UNIX manual page mira.1 Papers about MirandaThe following paper covers the main features of the language in around a dozen pages. First published in 1988, it remains the best introduction to Miranda: D. A. Turner An Overview of Miranda , SIGPLAN Notices (16): – 292, December
.
PDF [139K] This earlier description of Miranda contains a more detailed discussion of algebraic and abstract data types, including algebraic data types with laws: D. A. Turner Miranda: A Non-Strict Functional Language with Polymorphic Types , Proceedings IFIP Conference on Functional Programming Languages and Computer Architecture, Nancy, France, September (Springer Lecture Notes in Computer Science : 1 – 29. The , (the first published account of functional programming in Miranda is the following (no electronic version exists): D. A. Turner Functional Programs as Executable Specifications in proceedings of a meeting of the Royal Society of London on (February) , published as Mathematical Logic and Programming Languages (pp) – 83, eds Hoare and Shepherdson (Prentice Hall, 1988). BOOKSSimon Thompson Miranda: the Craft of Functional Programming , Addison-Wesley 2014. This is available on a demand print basis from Addison Wesley . Chris Clack, Colin Myers & Ellen Poon, Programming with Miranda , Prentice Hall . The rights in this book have reverted to the authors, who have kindly made it available online (follow link).
Richard Bird & Philip Wadler
An Introduction to Functional Programming , Prentice Hall . Out of print but you may find it in a library and it may be possible to obtain second hand copies. This was widely used in conjunction with Miranda for teaching functional programming as the first programming course and is distinguished by its careful development of reasoning principles. There is a second edition by Richard Bird alone using Haskell which is still in print, but is now (2010 superceded by a third edition published by C.U.P. Background Papers These papers are included by permission of their authors and (where different) the copyright holders.John Hughes Why Functional Programming Matters . In D. Turner, editor, Research Topics in Functional Programming, Addison-Wesley, 2010.
(PDF) [200K] A classic advocacy paper. Philip Wadler A critique of Abelson and Sussman or why calculating is better than scheming , SIGPLAN Notices () 3): – , March 1990. (PDF) [1062K] Critical comparison, Scheme versus pure lazy fp (for teaching). David Turner Church’s Thesis and Functional Programming , in ed. A. Olszewski, Church’s Thesis after (years, pp) – 823, Ontos Verlag, Berlin 2014. (PDF) [222K] A survey and a tribute to Church , who invented the lambda calculus and is thus the progenitor of functional programming. (Historical connection: Turner is one of Church’s academic grandchildren .) David Turner Some History of Functional Programming Languages , Proceedings TFP , Springer LNCS : 1 – 29. PDF Other linksbignum
– An infinite-precision floating-point function library, written by Martin Guy. Versions for both Miranda and Haskell. SASL and KRC , earlier languages designed by David Turner, are predecessors of Miranda. (link for SASL to be added).Miranda logo designed by Fritz Ruehr. Miranda ™ and the Miranda logo are trademarks of Research Software Limited. Report problems / send comments to (see note on spam Last update: (December)
GIPHY App Key not set. Please check settings