<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming/RSS"></atom:link>
	<image>
		<url>http://rev9.blob.core.windows.net/thumbnail/1b2a3d2a-490d-4aa2-bfd0-676e2207fa28.jpg</url>
		<title>Channel 9 - C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<link></link>
	</image>
	<description> We had to cover monads eventually, and there are many great monad tutorials out there (see, for example, here: http://www.haskell.org/haskellwiki/Tutorials#Using_monads). In fact, there are web resources concerned solely with organizing the many monad tutorials available in the wild, and developing new monad tutorials seems to be a popular sport in the Haskell community. Today, Ralf L&#228;mmel&#39;s lecture goes back to the roots, essentially revisiting Wadler&#39;s &amp;quot;The essence of functional programming&amp;quot;—the 1992 paper that discovered monads and popularized their use in functional programming. Ralf L&#228;mmel&#39;s lecture and accompanying code distribution show Wadler&#39;s seminal insight: those original scenarios and observations still make sense today. Indeed, Simon Marlow (a Haskell/GHC high priest&amp;nbsp;@ MSR Cambridge) recently noted: &amp;quot;it&#39;s still the best monad tutorial&amp;quot; (see http://twitter.com/simonmar/status/21397398061). Focusing on a few generically useful monads, Dr. L&#228;mmel explains how the work within the interpretation domain. While the lecture also takes a look at the contemporary Haskell library for monads and monad transformers, there are obviously many monads and associated domains that cannot be covered this time. If you want to learn more about monads, then continue with state threads, IO, parsing, and concurrency (STM). Slide deck: http://developers.svn.sourceforge.net/viewvc/developers/repository/ralfs-channel9-lectures/decks/monads.pdf Exercises/riddles: Slide #4 (easy), #6 (modest), #13 (modest), #40 (hard) Code distribution: http://developers.svn.sourceforge.net/viewvc/developers/repository/ralfs-channel9-lectures/code/monads/ &amp;nbsp;Blog post: http://professor-fish.blogspot.com/2010/09/essence-of-essence-of-functional.html </description>
	<link></link>
	<language>en</language>
	<pubDate>Tue, 18 Jun 2013 07:14:21 GMT</pubDate>
	<lastBuildDate>Tue, 18 Jun 2013 07:14:21 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[
<p>Monad. Monad. Monad. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>Thank you, Ralf!!!</p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634207739610000000</link>
		<pubDate>Wed, 22 Sep 2010 17:39:21 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634207739610000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[
<p>Thank you Charles for getting this mission accomplished.</p>
<p>I just did a &quot;monad&quot; search on channel9, and this seems to be the best place for finding monad lectures. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> It is just truly amazing how much people care about monads, and what sort of miracles you can do with them.</p>
<p>So this is the reason why I opted for a kind of history lecture---to show people, more or less, how Haskell's monads came about. So this is not really interesting for people who already have a few monads in their arsenal. But it should be interesting for
 people who would like to get a simple intro to monads based on classic and seminal material.</p>
<p>If anyone would like to work towards matching the Haskell code in the repository with F#, Scala code or other functional code, please go ahead, just subscribe to the open-source project, and/or get in touch with me.</p>
<p>posted by user42</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634207892790000000</link>
		<pubDate>Wed, 22 Sep 2010 21:54:39 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634207892790000000</guid>
		<dc:creator>user42</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[
<p>After this lecture *nobody* can claim anymore that Monads are difficult.&nbsp;</p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634207904570000000</link>
		<pubDate>Wed, 22 Sep 2010 22:14:17 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634207904570000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[
<p>I keep getting a media failure ... <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-6.gif' alt='Sad' /> ... could just be my connection ... staying at a hotel.&nbsp; I'll try downloading it I guess.&nbsp;</p>
<p>Edit:&nbsp; Bah ... this is going to take an hour to download ... definitely the lousy &quot;high speed&quot; connection.&nbsp;
</p>
<p>posted by Richard.Hein</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208029570000000</link>
		<pubDate>Thu, 23 Sep 2010 01:42:37 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208029570000000</guid>
		<dc:creator>Richard.Hein</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[
<p>@<a href="/Shows/Going&#43;Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208029570000000">Richard.Hein</a>: Yes. It's a network thing. Download.</p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208034630000000</link>
		<pubDate>Thu, 23 Sep 2010 01:51:03 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208034630000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[
<p>@<a href="/Shows/Going&#43;Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208029570000000">Richard.Hein</a>:</p>
<p>&nbsp;</p>
<p>I hate hotel internet connections, often enough my cell card is better than the internet connection in a hotel, As I stay in hotels at least 50% of the year this is a real problem...</p>
<p>I find myself downloading everything when I get to the office just to watch later in the hotel...</p>
<p>posted by harlock123</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208398990000000</link>
		<pubDate>Thu, 23 Sep 2010 11:58:19 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208398990000000</guid>
		<dc:creator>harlock123</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[
<p>The Tweet-link seems to be broken. Can anyone confirm?</p>
<p>posted by ShinNoNoir</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208407790000000</link>
		<pubDate>Thu, 23 Sep 2010 12:12:59 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208407790000000</guid>
		<dc:creator>ShinNoNoir</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[
<p>c9 is still a bit in migration pain, I guess <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' />&nbsp;There are known issues with tagging, hit count, and yes the tweeting and facebook stuff doesn't work for me either.</p>
<p>posted by user42</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208460700000000</link>
		<pubDate>Thu, 23 Sep 2010 13:41:10 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208460700000000</guid>
		<dc:creator>user42</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[
<p>@<a href="/Shows/Going&#43;Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208460700000000">user42</a>: Bug has&nbsp;been filed.Can't repro the Facebook issue, though. Can repro the Tweet issue...</p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208531850000000</link>
		<pubDate>Thu, 23 Sep 2010 15:39:45 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634208531850000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[<p>I really I wish I could understand what this lecture is all about <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-6.gif' alt='Sad' />&nbsp; </p><p>posted by RichardAlan</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634209865640000000</link>
		<pubDate>Sat, 25 Sep 2010 04:42:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634209865640000000</guid>
		<dc:creator>RichardAlan</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/Going&#43;Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634209865640000000">RichardAlan</a>:perhaps watch the Haskell series first?</p><p>Fundamentalist functional programmers are really, really lazy. Even more that Ruby programmers, they actually take the DNRY motto to the extreme limit. Whenever they see a pattern repeating in their code, they try to encapsulate&nbsp;it in a reusable abstraction.</p><p>The interesting thing about Haskell and other advanced functional languages (<a href="http://en.wikipedia.org/wiki/Pure_type_system">http://en.wikipedia.org/wiki/Pure_type_system</a>), is that you can also define abstractions over type constructors (not just over types as with generics in Eiffel, Java, C#, ...). </p><p>Once you can do that you suddenly discover design patterns, in the case of this lecture monads,&nbsp;that you did not see before: &quot;Aha, this piece of code is has precisely the same structure as that,&quot;.</p><p>As with all cool concepts, in programming,&nbsp;it turns out that the mathematicians had long ago already discovered the same thing and called it &quot;monads&quot;.</p><p>Other patterns that Ralf talks and will talk about are initial algebras, final co-algebras, homomorphisms (bananas, folds, lenses, unfolds, ..). Going even further, Ralf's hobby is to scrap *all* your boilerplate (<a href="http://research.microsoft.com/en-us/um/people/simonpj/papers/hmap/">http://research.microsoft.com/en-us/um/people/simonpj/papers/hmap/</a>).</p><p>Another favorite hobby of fundamentalist functional programmers is to write programs in&nbsp;so-called &quot;point-free&quot; style, that is, using as few &quot;variables&quot; as possible (<a href="http://www.haskell.org/haskellwiki/Pointfree">http://www.haskell.org/haskellwiki/Pointfree</a>). Ralf might entertain and awe&nbsp;the audience with some Perls (pun intended) in this category in future lectures.</p><p>Anyway, this is just a long winded way of saying that all is going on is pattern matching. So don't despair, it is like those<a href="http://en.wikipedia.org/wiki/Autostereogram">autosterograms</a>, if you stare at it long enough, you will suddenly see it.</p><p>[Hey Channel 9, where is the spell checking in the comments?]</p><p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634209888880000000</link>
		<pubDate>Sat, 25 Sep 2010 05:21:28 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634209888880000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[<p>@Eric: What's the next big functional programming technique(s) to hit the mainstream? I ask because you are in a position to create a self-fulfilling prophesy <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p><p>@Ralf: Thanks for the lecture. I still have to watch this a couple of times to get the monad transformers but at least now I have a rough picture of what you actually use these for.</p><p>posted by exoteric</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634210162740000000</link>
		<pubDate>Sat, 25 Sep 2010 12:57:54 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634210162740000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/Going&#43;Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634210162740000000">exoteric</a>: the coverage of monad transformers was pretty minimal. Perhaps I should do a session soon where I solve some of the previous exercises/riddles. The one with the compound monad would be a nice exercise, indeed. One could look into the internals of the leveraged monad transformers and the result of composition and thereby understand that composition gives the same monad as the monolithic monad that one would define from scratch.</p><p>&nbsp;</p><p>posted by user42</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634210844620000000</link>
		<pubDate>Sun, 26 Sep 2010 07:54:22 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634210844620000000</guid>
		<dc:creator>user42</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[What about Lawvere theories?<br /><p>posted by ǃ</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634212165610000000</link>
		<pubDate>Mon, 27 Sep 2010 20:36:01 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634212165610000000</guid>
		<dc:creator>ǃ</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/Going&#43;Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634212165610000000">ǃ</a>: If you crave that kind of gourmet theory, have a look at<a href="http://wwwhome.cs.utwente.nl/~fokkinga/index.html#detail_0000003413">http://wwwhome.cs.utwente.nl/~fokkinga/index.html#detail_0000003413</a></p><p>posted by head.in.the.box</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634212252220000000</link>
		<pubDate>Mon, 27 Sep 2010 23:00:22 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634212252220000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[Thank you Ralf! As a self learner I have been scouring the net for resources on Haskell, particularly type classes such as Monad and friends. Plenty of good stuff out there but this really worked for me. Found your presentation and explanations wonderfully clear.<br />Thanks again! Todd<p>posted by Todd</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634214162400000000</link>
		<pubDate>Thu, 30 Sep 2010 04:04:00 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634214162400000000</guid>
		<dc:creator>Todd</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
		<description>
			<![CDATA[<p>@<a href="/Shows/Going&#43;Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634214162400000000">Todd</a>: thank you! It's a pleasure to target the c9 audience with this lecture series.</p><p>Monads are not at all complicated. In my experience, two things can go wrong with learning about monads. a) the explanation is too difficult, e.g., due to unnecessary references to category theory; b) the explanation is too low level.</p><p>Wadler's paper, which I sort of executed (in part), motivates monads from a program development's point of view (in the sense of &quot;suppose you have this sort of program, but now you need to accommodate this additional requirement; ok, and now try to generalize the solution through a parameterization technique&quot;).</p><p>I am a big fan, generally, of using transformations as a tool for understanding programming techniques. There is the monadification transformation; it's not just good for explanation; it's actually useful in functional programming as a kind of refactoring.</p><p>M. Erwig has written a wonderful paper about &quot;monadification&quot;:</p><p><a href="http://web.engr.oregonstate.edu/~erwig/papers/abstracts.html#SCP04">http&#58;&#47;&#47;web.engr.oregonstate.edu&#47;&#126;erwig&#47;papers&#47;abstracts.html&#35;SCP04</a></p><p>I also did a short paper a long time ago with a bit about monadification:</p><p><a href="http://homepages.cwi.nl/~ralf/sfp99.pdf">http&#58;&#47;&#47;homepages.cwi.nl&#47;&#126;ralf&#47;sfp99.pdf</a></p><p>Wadler also alluded to different forms of reuse that are present in the scenarios for the different monads. I gave explicit names to those forms: data extension and selective code replacement. This also shows that even the monad topic has a strong link to the expression problem. </p><p>Well, while we are at it; it is intriguing to notice that monad (transformer) composition actually gives you another dimension of program extension---in addition to data and operation extensions. One may think of that additional extension form as having to do with aspects.</p><p>De Meuter has written a thought-provoking (and potentially very confusing) paper some time ago on the relationship between monads and AOP:</p><p><a href="http://academic.research.microsoft.com/Paper/150465.aspx">http&#58;&#47;&#47;academic.research.microsoft.com&#47;Paper&#47;150465.aspx</a></p><p>I intended to clarify this relationship, but, in fact, the following paper is potentially even more confusing:</p><p><a href="http://homepages.cwi.nl/~ralf/foal03/">http&#58;&#47;&#47;homepages.cwi.nl&#47;&#126;ralf&#47;foal03&#47;</a></p><p>Ralf</p><p>posted by user42</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634215394360000000</link>
		<pubDate>Fri, 01 Oct 2010 14:17:16 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming#c634215394360000000</guid>
		<dc:creator>user42</dc:creator>
	</item>
</channel>
</rss>