Nottingham ePrints (University of Nottingham) · 1996 · 100 citations · 11 references
Open access
ComputingComputer ScienceMathematicsAlgebraCombinatoricsTheory Of ComputationFunctional ProgrammingParsingRecursion TheorySyntactic ParsingSyntax AnalysisSyntax ParsingHigher-order FunctionsMonadsParser CombinatorsParser DesignParsing AlgorithmsParsing TheoryRecursionRecursive Descent Parsing
In functional programming, a popular approach to building recursive descent parsers is to model parsers as functions, and to define higher-order functions (or combinators) that implement grammar constructions such as sequencing, choice, and repetition. Such parsers form an instance of a monad, an algebraic structure from mathematics that has proved useful for addressing a number of computational problems. The purpose of this article is to provide a step-by-step tutorial on the monadic approach to building functional parsers, and to explain some of the benefits that result from exploiting monads. No prior knowledge of parser combinators or of monads is assumed. Indeed, this article can also be viewed as a first introduction to the use of monads in programming.
11
Report on the programming language Haskell
Paul Hudak, Simon Peyton Jones, Philip Wadler et al. · ACM SIGPLAN Notices · 1992 · 1K citations · Full text
Why Functional Programming Matters
John Hughes · The Computer Journal · 1989 · 739 citations · Full text
The essence of functional programming
Philip Wadler · 1992 · 676 citations · Full text
The next 700 programming languages
P. J. Landin · Communications of the ACM · 1966 · 581 citations · Full text
Philip Wadler · 1990 · 575 citations · Full text