MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Functional Programming with Overloading and Higher-Order Polymorphism (1995) [55 citations — 2 self]

by Mark P. Jones
Add To MetaCart

Abstract:

The Hindley/Milner type system has been widely adopted as a basis for statically typed functional languages. One of the main reasons for this is that it provides an elegant compromise between flexibility, allowing a single value to be used in different ways, and practicality, freeing the programmer from the need to supply explicit type information. Focusing on practical applications rather than implementation or theoretical details, these notes examine a range of extensions that provide more flexible type systems while retaining many of the properties that have made the original Hindley/Milner system so popular. The topics discussed, some old, but most quite recent, include higher-order polymorphism and type and constructor class overloading. Particular emphasis is placed on the use of these features to promote modularity and reusability.

Citations

1415 The Definition of Standard ML – Milner, Tofte, et al. - 1990
1122 Introduction to Functional Programming – Bird, Wadler - 1988
806 A Theory of Type Polymorphism in Programming – Milner - 1978
385 Comprehending monads – WADLER - 1992
345 Computational lambda-calculus and monads – Moggi - 1989
280 How to make ad-hoc polymorphism less ad-hoc – Wadler, Blott - 1989
250 Functional programming with bananas, lenses, envelopes and barbed wire – Meijer, Fokkinga, et al. - 1991
217 Principal type schemes for functional programs – Milner, Damas - 1982
181 Random number generators: Good ones are hard to find – Park, Miller - 1988
174 Monad transformers and modular interpreters – Liang, Hudak, et al. - 1995
162 A system of constructor classes: overloading and implicit higher-order polymorphism – Jones - 1995
133 An abstract view of programming languages – Moggi - 1990
113 The principal type-scheme of an object in combinatory logic – Hindley - 1969
86 An Overview of Miranda – Turner - 1986
63 editors). Report on the Programming Language Haskell, A Non-strict Purely Functional Language (Version 1.2 – Hudak, Jones, et al. - 1992
55 The implementation of the Gofer functional programming system – Jones - 1994
53 Composing monads – Jones, Duponcheel - 1994
51 Categories for the Working Mathematician, Graduate Texts – MacLane - 1971
50 an experimental applicative language – Hope - 1980
45 The essence of functional programming (invited talk – Wadler - 1992
38 A functional theory of exceptions – Spivey - 1990
31 Dictionary-free overloading by partial evaluation. Pepm '94 | ACM SIGPLAN workshop partial eval. & semantics-based prog. manipulation – Jones - 1994
22 Building Interpreters by Composing Monads – Jr - 1994
12 Computing with lattices: An application of type classes – Jones - 1992
7 Modular Denotational Semantics. Unpublished manuscript – Espinosa - 1993
6 Building interpreters by transforming stratified monads. Unpublished manuscript – Espinosa - 1994
5 Gofer goes bananas – Meijer, Jones - 1994
4 Linear-time breadth-first tree algorithms: an exercise in the arithmetic of folds and zips – Jones, Gibbons - 1993
4 Duality and De Morgan principles for lists – Turner - 1990