X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=offsite_reading.mdwn;h=34a2eff5503abc1e6eb66af79dd187c7437baf58;hp=8bb42380b30fb731febb77a8c9ad7e6f8311c5ef;hb=4227828f80f4c9c05f10bfc14435747c31fbb934;hpb=1a71e5b2f4c3f6ebbd14e51b3d139e72ce9cff94;ds=sidebyside diff --git a/offsite_reading.mdwn b/offsite_reading.mdwn index 8bb42380..34a2eff5 100644 --- a/offsite_reading.mdwn +++ b/offsite_reading.mdwn @@ -148,14 +148,6 @@ get more out of. (Rinse and repeat.) * Yet Another Monad Tutorial: [part 1](http://mvanier.livejournal.com/3917.html) [part 2](http://mvanier.livejournal.com/4305.html) [part 3](http://mvanier.livejournal.com/4586.html) [part 4](http://mvanier.livejournal.com/4647.html) * [Research Papers/Monads and Arrows](http://www.haskell.org/haskellwiki/Research_papers/Monads_and_arrows) -* [Philip Wadler. Monads for Functional Programming](http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf): -in M. Broy, editor, *Marktoberdorf Summer School on Program Design Calculi*, Springer Verlag, NATO ASI Series F: Computer and systems sciences, Volume 118, August 1992. Also in J. Jeuring and E. Meijer, editors, *Advanced Functional Programming*, Springer Verlag, LNCS 925, 1995. Some errata fixed August 2001. - The use of monads to structure functional programs is described. Monads provide a convenient framework for simulating effects found in other languages, such as global state, exception handling, output, or non-determinism. Three case studies are looked at in detail: how monads ease the modification of a simple evaluator; how monads act as the basis of a datatype of arrays subject to in-place update; and how monads can be used to build parsers. -* [Philip Wadler. The essence of functional programming](http://homepages.inf.ed.ac.uk/wadler/papers/essence/essence.ps): -invited talk, *19'th Symposium on Principles of Programming Languages*, ACM Press, Albuquerque, January 1992. - 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. ## Monads in Category Theory ##