upy
authorMart Lubbers <mart@martlubbers.net>
Wed, 6 Apr 2016 07:31:49 +0000 (09:31 +0200)
committerMart Lubbers <mart@martlubbers.net>
Wed, 6 Apr 2016 07:31:49 +0000 (09:31 +0200)
long/long.tex

index a9d5f44..7bcc377 100644 (file)
@@ -1,8 +1,6 @@
 %&long
 \begin{document}
-
 \maketitle
-
 \tableofcontents
 
 \section{Introduction}
 \emph{Program Design Calculi} which was a collection of lecture notes
 accompanying the \emph{Marktoberdorf} summer school in 1992. Later it was
 reissued in \emph{Springer}s \emph{Advanced Functional Programming} book which
-presents the tutorials from a spring school in Sweden in 1995. 
-
-The notes were written to introduce the reader to the idea of a Monad usable in
-a functional programming context. Where monads are already defined and studied
-in category theory in the early fifties. Moggi et al.\ were the first in 1988
-to see the usefulness in computer science and in particular functional
-programming. At the time of writing this paper was introducing state of the art
-research which later became the preferred way of dealing with side-effects in a
-pure language. The paper familiarized readers with the concepts while only
-requiring basic knowledge in functional programming.
+presents the tutorials from a spring school situated in Sweden in 1995. 
+
+The notes were written to introduce the reader to the monadic design pattern in
+functional programming. Monads were already defined and studied
+in category theory in the early 1950s but only in the 1988 it was first linked
+to computer science. Moggi et al.\ were the first to see the usefulness in
+computer science and in particular functional programming. At the time of
+writing this paper was introducing state of the art research which later became
+the preferred way of dealing with side-effects in a pure language. The paper
+familiarized readers with the concepts while only requiring basic knowledge in
+functional programming.
 
 \subsection{Impact}
 While Wadler had already published a lot about monads this turned out to be one
@@ -30,7 +29,7 @@ part of the small group of researchers that kick-started the use of monads in
 functional programming.
 
 The paper has been cited over $676$ times over the past $23$ years resulting in
-a $\pm 30$ cites per year. It is cited as the de-facto monad introducing paper.
+a around cites per year. It is cited as the de-facto monad introducing paper.
 In 2015 and 2016 the paper has already been cited numerous times in topics
 including but not limited to: Introducing new monad types, generic programming,
 designing modular design specific languages, concurrency frameworks in
@@ -39,13 +38,15 @@ functional languages and probabilistic computing.
 \section{Proposal and evidence}
 \subsection{Proposal}
 Wadler proposes to capture side-effects in monads. A monad is a structure
-containing a monad type:
-\CI{:: M a}\\
-Secondly a monad contains a function to lift a value to the monadic domain:
-\CI{unit :: a -> M a}\\
-Lastly a monad contains the function that transforms \CI{a} into \CI{b} while
-capturing the possible side-effects in \CI{M}:
-\CI{(>>=) infixl 1 :: (M a) (a -> M b) -> M b}
+containing three components. The first component is the type itself called
+\CI{:: M a}
+
+The second component is a function that lifts a certain value to the monadic
+domain and is defined as \CI{unit :: a -> M a}
+
+Lastly the structure contains a function which transforms a certain \CI{a} into
+a certain \CI{b} while capturing the possible side-effects in \CI{M} and is
+defined as: \CI{(>>=) infixl 1 :: (M a) (a -> M b) -> M b}
 
 When this structure adheres certain laws they are very useful in capturing
 side-effects that would otherwise be difficult to handle in an impure language.