• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

The Essence of Functional Programming (1992)

Cached

  • Download as a PDF
  •  
  • Download as a PS

Download Links

  • [flint.cs.yale.edu]
  • [www.research.avayalabs.com]
  • [www.cc.gatech.edu]
  • [www.cis.upenn.edu]
  • [www.swiss.ai.mit.edu:8000]
  • [www.research.microsoft.com]
  • [www.cs.ui.ac.id]
  • [ftp.dcs.glasgow.ac.uk]

  • Other Repositories/Bibliography

  • CiteULike
  • DBLP
  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Philip Wadler
Citations:1225 - 37 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@INPROCEEDINGS{Wadler92theessence,
    author = {Philip Wadler},
    title = {The Essence of Functional Programming},
    booktitle = {},
    year = {1992},
    pages = {1--14},
    publisher = {Prentice Hall}
}

Years of Citing Articles

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

This paper explores the use monads to structure functional programs. No prior knowledge of monads or category theory is required. Monads increase the ease with which programs may be modified. They can mimic the effect of impure features such as exceptions, state, and continuations; and also provide effects not easily achieved with such features. The types of a program reflect which effects occur. The first section is an extended example of the use of monads. A simple interpreter is modified to support various extra features: error messages, state, output, and non-deterministic choice. The second section describes the relation between monads and continuation-passing style. The third section sketches how monads are used in a compiler for Haskell that is written in Haskell. 1 Introduction Shall I be pure or impure? Pure functional languages, such as Haskell or Miranda, offer the power of lazy evaluation and the simplicity of equational reasoning. Impure functional languages, such as Stan...

Citations

4647 Design patterns: elements of reusable object-oriented software - Gamma, Helm, et al. - 1995
1497 The Definition of Standard ML - Milner, Tofte, et al. - 1990
816 S.: Categories for the working mathematician - Lane - 1998
418 Comprehending monads - Wadler - 1990
401 Computational lambda-calculus and monads - Moggi - 1989
379 Introduction to Higher Order Categorical Logic - Lambek, Scott - 1986
352 ML for the Working Programmer - Paulson - 1996
297 Pizza into java: Translating theory into practice - Odersky, Wadler - 1997
263 Definitional interpreters for higher-order programming languages - Reynolds - 1972
219 Call-by-name, call-by-value, and the -calculus - Plotkin - 1975
155 The essence of Algol - Reynolds - 1981
115 Abstract interpretation of declarative languages - Abramsky, Hankin - 1987
107 Continuation-passing, closure-passing style - Appel, Jim - 1989
107 Algebraic reconstruction of types and effects - Jouvelot, Gifford - 1991
105 Design of the programming language Forsythe - Reynolds - 1996
95 An overview of Miranda - Turner - 1986
88 Typing first-class continuations in ML - Harper, Duba, et al. - 1993
83 How to replace failure by a list of successes - Wadler - 1985
79 Abstracting control - Danvy, Filinski - 1990
72 Integrating functional and imperative programming - Gifford, Lucassen - 1986
71 Single-threaded polymorphic lambda calculus - Guzman, Hudak - 1990
61 editors, Report on the programming language Haskell, a non-strict purely-functional programming language, Version 1.2. Sigplan Notices 27(5 - Hudak, Jones, et al. - 1992
56 Detecting global variables in denotational specifications - Schmidt - 1985
50 Using Category Theory to Design Implicit Conversions and Generic Operators, Semantics-Directed Compiler Generation - Reynolds - 1980
50 The essence of functional programming (invited talk - Wadler - 1992
39 A functional theory of exceptions - Spivey - 1990
37 Assignments for applicative languages - Swarup, Reddy, et al. - 1991
36 Lambda: The ultimate imperative - Steele, Sussman - 1976
31 Update analysis and the efficient implementation of functional aggregates - Bloss - 1989
29 Functional programming in C - McNamara, Smaragdakis
27 A framework for Higher-Order functions in C - Laufer - 1995
25 A semantic model of reference counting and its abstraction (detailed summary - Hudak - 1986
24 The coherence of languages with intersection types - Reynolds - 1991
16 Mutable abstract datatypes -or- How to have your state and munge it too - Hudak - 1992
15 Syntactic control of interference, Part II - Reynolds - 1989
8 FACT!—The Functional Side of C++”, http://www.fz-juelich.de/zam/FACT - Striegnitz
7 a continuation extension for - Perry, HopeC - 1987
3 An abstract view of programming languges. Course notes - Moggi
1 Bridging Functional and Object-Oriented Programming” Georgia Tech CoC - Smaragdakis, McNamara
1 A type checker. Chapter 9 of Simon Peyton Jones, The Implementation of Functional Programming Languages - Hancock - 1987
1 there a use for linear logic - Is - 1991
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University