Book ChapterDOI
Miranda: a non-strict functional language with polymorphic types
D. A. Turner
- pp 1-16
TLDR
The use of abstract data types in the LCF system has been studied in this article, where Gordon et al. show that many of the data types which in other languages would have to be expressed as Abstract Data Types can be expressed in Miranda as algebraic data types with associated laws.Abstract:
data types Many of the data types which in other languages would have to be expressed as abstract data types can be represented in Miranda as algebraic data types with associated laws. Nevertheless there is still a need for abstract data types, as may be seen from the following example (which is based on a use of abstract data types in the LCF system [Gordon et al 79]).read more
Citations
More filters
Book
Algorithmic skeletons : structured management of parallel computation
TL;DR: This book introduces a new approach to the design and implementation of software systems which will help users of large scale parallel systems coordinate many concurrent activities toward a single goal and proposes a selection of independent algorithmic skeletons which describes the structure of a particular style of algorithm.
Journal ArticleDOI
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
Paul Hudak,Simon Jones,Philip Wadler,Brian Boutel,Jon Fairbairn,Joseph Fasel,María M. Guzmán,Kevin Hammond,John Hughes,Thomas Johnsson,Dick Kieburtz,Rishiyur S. Nikhil,Will Partain,John Peterson +13 more
TL;DR: In this paper, a half dozen persons have written technically on combinatory logic, and most of these, including ourselves, have published something erroneous, and since some of our fellow sinners are among the most careful and competent logicians on the contemporary scene, we regard this as evidence that the subject is refractory.
Proceedings ArticleDOI
How to make ad-hoc polymorphism less ad hoc
Philip Wadler,Stephen Blott +1 more
TL;DR: Type classes extend the Hindley/Milner polymorphic type system, and provide a new approach to issues that arise in object-oriented programming, bounded type quantification, and abstract data types.
Proceedings ArticleDOI
Theorems for free
TL;DR: From the type of a polymorphic function the authors can derive a theorem that it satisfies, courtesy of Reynolds’ abstraction theorem for the polymorphic lambda calculus, which provides a free source of useful theorems.
Journal ArticleDOI
Deforestation: transforming programs to eliminate trees
TL;DR: The algorithm applies to any term containing only functions with definitions in a given syntactic form, and is suitable for incorporation in an optimizing compiler.
References
More filters
Journal ArticleDOI
A theory of type polymorphism in programming
TL;DR: This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline.
Journal ArticleDOI
The Mechanical Evaluation of Expressions
TL;DR: It is shown how some forms of expression in current programming languages can be modelled in Church's X-notation, and a way of "interpreting" such expressions is described, which suggests a method of analyzing the things computer users write.
Proceedings ArticleDOI
HOPE: An experimental applicative language
TL;DR: An applicative language called HOPE is described and discussed, to produce a very simple programming language which encourages the construction of clear and manipulable programs.
Journal ArticleDOI
Proving Properties of Programs by Structural Induction
TL;DR: Some syntactic extensions to Landin's functional programming language ISWIM are suggested which make it easier to program the manipulation of data structures and to develop proofs about such programs.
Proceedings ArticleDOI
Modules for standard ML
TL;DR: The module facility described here has been proposed as part of the revised language, now called Standard ML, to facilitate the structuring of large ML programs and to employ new ideas in the semantics of data types to extend the power of ML's polymorphic type system.