<?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>Channel 9 - Entries tagged with Haskell</title>
    <atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Tags/haskell/RSS"></atom:link>
    <itunes:summary></itunes:summary>
    <itunes:author>Microsoft</itunes:author>
    <itunes:subtitle></itunes:subtitle>
    <image>
      <url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
      <title>Channel 9 - Entries tagged with Haskell</title>
      <link>http://channel9.msdn.com/Tags/haskell</link>
    </image>
    <itunes:image href=""></itunes:image>
    <itunes:category text="Technology"></itunes:category>
    <description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
    <link>http://channel9.msdn.com/Tags/haskell</link>
    <language>en</language>
    <pubDate>Thu, 23 May 2013 21:06:13 GMT</pubDate>
    <lastBuildDate>Thu, 23 May 2013 21:06:13 GMT</lastBuildDate>
    <generator>Rev9</generator>
    <c9:totalResults>24</c9:totalResults>
    <c9:pageCount>1</c9:pageCount>
    <c9:pageSize>25</c9:pageSize>
  <item>
      <title>Alexandrescu, Bright, Meijer, Moran: Pure versus Native (and much more)</title>
      <description><![CDATA[<p>Continuing with the series of conversations filmed in the &quot;social room&quot; at <a href="http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012" target="_blank"><strong>Lang.NEXT 2012</strong></a>, we present <strong>Andrei</strong> <strong>Alexandrescu</strong>, <strong>Walter Bright</strong>,&nbsp;<strong>Erik Meijer</strong>, and <strong>Andrew Adams-Moran</strong> discussing/debating various programming topics including pure versus native languages, Haskell, D, and more. Thanks Andrei, Andrew, Erik, and Walter for an <strong>excellent</strong> conversation! As always, this is presented to you exactly as it happened. <br><br>Tune in. Enjoy.</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:675c9badda0d41108ac0a02b012ef5f4">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Charles/Alexandrescu-Bright-Meijer-Moran-Pure-versus-Native-and-much-more</comments>
      <itunes:summary>Continuing with the series of conversations filmed in the &amp;quot;social room&amp;quot; at Lang.NEXT 2012, we present Andrei Alexandrescu, Walter Bright,&amp;nbsp;Erik Meijer, and Andrew Adams-Moran discussing/debating various programming topics including pure versus native languages, Haskell, D, and more. Thanks Andrei, Andrew, Erik, and Walter for an excellent conversation! As always, this is presented to you exactly as it happened. Tune in. Enjoy. </itunes:summary>
      <itunes:duration>3221</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Charles/Alexandrescu-Bright-Meijer-Moran-Pure-versus-Native-and-much-more</link>
      <pubDate>Thu, 12 Apr 2012 13:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Charles/Alexandrescu-Bright-Meijer-Moran-Pure-versus-Native-and-much-more</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative_100.jpg" height="56" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative_220.jpg" height="123" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative_512.jpg" height="288" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative.mp3" expression="full" duration="3221" fileSize="51547752" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative.mp4" expression="full" duration="3221" fileSize="304063550" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative.webm" expression="full" duration="3221" fileSize="121975894" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative.wma" expression="full" duration="3221" fileSize="26055719" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative.wmv" expression="full" duration="3221" fileSize="711592811" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative_high.mp4" expression="full" duration="3221" fileSize="667300435" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative_mid.mp4" expression="full" duration="3221" fileSize="465388378" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative_Source.wmv" expression="full" duration="3221" fileSize="1165104968" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/0ad8/4ac090a8-f8c7-46a3-a7ed-c26c1ba80ad8/LangNEXT2012AndreiAndyErikWalterPureVsNative.wmv" length="711592811" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>10</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Charles/Alexandrescu-Bright-Meijer-Moran-Pure-versus-Native-and-much-more/RSS</wfw:commentRss>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Native</category>
      <category>Andrei Alexandrescu</category>
      <category>D</category>
      <category>Walter Bright</category>
      <category>Lang.NEXT 2012</category>
    </item>
  <item>
      <title>Simon Peyton-Jones and John Hughes - It&#39;s Raining Haskell</title>
      <description><![CDATA[<p>Ever wonder what would happen if you happened upon&nbsp;<a href="http://research.microsoft.com/en-us/people/simonpj/" target="_blank"><strong>Simon Peyton-Jones</strong></a>, author of the <strong>Glasgow Haskell Compiler</strong> (GHC) and a key contributor to the <a href="http://haskell.org" target="_blank"><strong>Haskell</strong></a> functional programming language,&nbsp;and&nbsp;<a href="http://www.chalmers.se/cse/EN/people/hughes-john" target="_blank"><strong>John Hughes</strong></a>, fellow Haskellite, computer scientist, creator&nbsp;of <a href="http://software.legiasoft.com/quickcheck/" target="_blank"><strong>QuickCheck</strong></a>, and author of the landmark paper, &quot;<a href="http://www.cse.chalmers.se/~rjmh/Papers/whyfp.html" target="_blank"><strong>Why Functional Programming Matters</strong></a>,&quot; sitting on a park&nbsp; bench, in the rain, right&nbsp;next to Sydney's iconic opera house? Well, let's find out, shall we?</p><p>Simon and John have been friends for many years and studied mathematics together at Trinity College Cambridge. What were they like as young men? As students? What was Simon's issue with wearing shoes, anyway? It's always wonderful to learn about the humans behind the software, the science. This is classic C9. Yes, it's raining on us as we converse, but the view is spectacular with Sydney's Opera House behind us. It's funny how wet we were by the end of this interview, but the rain was refreshing—just&nbsp;like the conversation.<br><br><strong>Thank you,</strong> <strong>Simon and John,</strong> for the <em>great</em> conversation, for being so comfortable in the rain, and for taking the random questions in stride. You're true gentlemen.&nbsp;Keep pushing the envelope!</p><p><strong>Happy holidays from Channel 9</strong> wherever you are and whatever, if anything, you're celebrating!</p><p>&nbsp;</p><p>The <a href="http://yowaustralia.com.au/YOW2011/general/about.html" target="_blank"><strong>YOW! Developer Conference</strong></a> offers outstanding opportunities to learn more about the latest practices, technologies, and methodologies for building innovative software solutions as well as the chance to meet and network with international software experts and other talented developers in Australia. Thanks to <strong>Dave Thomas</strong> and the event's <em>excellent</em> staff—<strong>Mary Catherine (MC), Lisa, Aino, Melissa</strong>, and others—for inviting me to this <em>excellent</em> pure developer event and thanks to all of the speakers for letting me take some of their time to record conversations for Channel 9. If you live in Australia, or aren't too far away, or just like to travel (who doesn't?), then you need to go to this yearly event. It's outstanding. There are many great developers down under. That's for sure. The speakers are exceptional—Dave and team set a high bar!</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:4f6680a9e0124a3e976b9fba000dc435">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Simon-Peyton-Jones-and-John-Hughes-Its-Raining-Haskell</comments>
      <itunes:summary>Ever wonder what would happen if you happened upon&amp;nbsp;Simon Peyton-Jones, author of the Glasgow Haskell Compiler (GHC) and a key contributor to the Haskell functional programming language,&amp;nbsp;and&amp;nbsp;John Hughes, fellow Haskellite, computer scientist, creator&amp;nbsp;of QuickCheck, and author of the landmark paper, &amp;quot;Why Functional Programming Matters,&amp;quot; sitting on a park&amp;nbsp; bench, in the rain, right&amp;nbsp;next to Sydney&#39;s iconic opera house? Well, let&#39;s find out, shall we? Simon and John have been friends for many years and studied mathematics together at Trinity College Cambridge. What were they like as young men? As students? What was Simon&#39;s issue with wearing shoes, anyway? It&#39;s always wonderful to learn about the humans behind the software, the science. This is classic C9. Yes, it&#39;s raining on us as we converse, but the view is spectacular with Sydney&#39;s Opera House behind us. It&#39;s funny how wet we were by the end of this interview, but the rain was refreshing—just&amp;nbsp;like the conversation.Thank you, Simon and John, for the great conversation, for being so comfortable in the rain, and for taking the random questions in stride. You&#39;re true gentlemen.&amp;nbsp;Keep pushing the envelope! Happy holidays from Channel 9 wherever you are and whatever, if anything, you&#39;re celebrating! &amp;nbsp; The YOW! Developer Conference offers outstanding opportunities to learn more about the latest practices, technologies, and methodologies for building innovative software solutions as well as the chance to meet and network with international software experts and other talented developers in Australia. Thanks to Dave Thomas and the event&#39;s excellent staff—Mary Catherine (MC), Lisa, Aino, Melissa, and others—for inviting me to this excellent pure developer event and thanks to all of the speakers for letting me take some of their time to record conversations for Channel 9. If you live in Australia, or aren&#39;t too far away, or just like to travel (who doesn&#39;t?), then you need t</itunes:summary>
      <itunes:duration>1750</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Simon-Peyton-Jones-and-John-Hughes-Its-Raining-Haskell</link>
      <pubDate>Sun, 25 Dec 2011 16:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Charles/YOW-2011-Simon-Peyton-Jones-and-John-Hughes-Its-Raining-Haskell</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_2MB_ch9.wmv" expression="full" duration="1750" fileSize="572082405" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_ch9.mp3" expression="full" duration="1750" fileSize="14004478" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_ch9.webm" expression="full" duration="1750" fileSize="222535636" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_ch9.wma" expression="full" duration="1750" fileSize="14159827" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_ch9.wmv" expression="full" duration="1750" fileSize="383951935" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_high_ch9.mp4" expression="full" duration="1750" fileSize="472620593" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_low_ch9.mp4" expression="full" duration="1750" fileSize="176980403" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_med_ch9.mp4" expression="full" duration="1750" fileSize="362256719" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes.ism/manifest" expression="full" duration="1750" fileSize="6116" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/c435/4f6680a9-e012-4a3e-976b-9fba000dc435/YOW2011SJPJohnHughes_ch9.wmv" length="383951935" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>17</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Simon-Peyton-Jones-and-John-Hughes-Its-Raining-Haskell/RSS</wfw:commentRss>
      <category>Computer Science</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Microsoft Research</category>
      <category>Programming Languages</category>
      <category>YOW! 2011</category>
      <category>Simon Peyton-Jones</category>
    </item>
  <item>
      <title>YOW! 2011: Simon Peyton-Jones - Closer to Nirvana</title>
      <description><![CDATA[<p>I caught up with <a href="http://research.microsoft.com/en-us/people/simonpj/" target="_blank"><strong>Simon Peyton-Jones</strong></a>, author of the <strong>Glasgow Haskell Compiler</strong> (GHC) and a key contributor to the <a href="http://haskell.org" target="_blank"><strong>Haskell</strong></a> functional programming language, at <a href="http://yowaustralia.com.au/" target="_blank"><strong>YOW! 2011</strong></a>. Simon&nbsp;is a&nbsp;pure functional guy.&nbsp;That said, he's OK with side effects as long as you&nbsp;can&nbsp;control them (so, monads&nbsp;are great!). <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /><br><br>Simon&nbsp;works at Microsoft as a&nbsp;research scientist in MSR. Simon's work on Haskell is legendary and the language has seen an increase in usage over the years and a steady evolution toward being not only a general purpose, strongly-typed functional programming language, but also a practical one. No longer is Haskell suited only for academic experimentation (though this continues to be an important aspect of the language—in fact, it's one of the very effective ways the language is pushed forward). As Simon says, Haskell is like a laboratory in which to test new functional ideas and&nbsp;novel language constructs.&nbsp;<br><br>One of the very interesting aspects of Haskell is how the surface language (so, the syntax you write) is boiled down to a very small intermediate language, <a href="http://en.wikipedia.org/wiki/System_F" target="_blank"><strong>System F</strong></a>. Simon spends a nice chunk of time in this conversation explaining this. It's a rather excellent approach. We only touch on <strong><a href="http://en.wikipedia.org/wiki/C--" target="_blank">C--</a>,</strong> but I have a feeling I'll be interviewing Simon again in the future.<br><br>How has the language evolved over the years? What's Simon working on these days (besides evolving Haskell, he's helping to make general purpose computing education&nbsp;for the masses <em>much</em> better!)? What's next? What are the big problems he and others are tackling with respect to moving Haskell forward? As always, it's a real pleasure to converse with and learn from Simon. His passion, enthusiasm, and intelligence are infectious (well, maybe not the intelligence part—you're born with the smarts you have. So, I didn't get smarter by talking with Simon, but I sure learned a lot!). Very few people are able to explain complex concepts in ways mere mortals can understand and assimilate. Simon is one of these people.</p><p>(<a href="http://channel9.msdn.com/Blogs/Charles/Simon-Peyton-Jones-Towards-a-Programming-Language-Nirvana" target="_blank">Here's the video</a> referenced at the beginning of this conversation.) <br><br><a href="http://yowaustralia.com.au/YOW2011/general/details.html?speakerId=2208" target="_blank">Simon's YOW! speaker page</a><br><br>Tune in. Enjoy. Learn.<br><br><br>The <a href="http://www.yowconference.com.au/" target="_blank"><strong>YOW! Developer Conference</strong></a> offers outstanding opportunities to learn more about the latest practices, technologies, and methodologies for building innovative software solutions as well as the chance to meet and network with international software experts and other talented developers in Australia. Thanks to <strong>Dave Thomas</strong> and the event's <em>excellent</em> staff - <strong>Mary Catherine (MC), Lisa, Aino, Melissa</strong>, and&nbsp;others -&nbsp;for inviting me to this <em>excellent</em> pure developer event and thanks to all of the speakers for letting me take some of their time to record conversations for Channel 9. If you live in Australia, or aren't too far away, or just like to travel (who doesn't?), then you need to go to this yearly event. It's outstanding. There are many great developers down under. That's for sure. The speakers are exceptional—Dave and team set a high bar!</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:7397a7549f91461bbba19fb8015a244d">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Simon-Peyton-Jones-Closer-to-Nirvana</comments>
      <itunes:summary>I caught up with Simon Peyton-Jones, author of the Glasgow Haskell Compiler (GHC) and a key contributor to the Haskell functional programming language, at YOW! 2011. Simon&amp;nbsp;is a&amp;nbsp;pure functional guy.&amp;nbsp;That said, he&#39;s OK with side effects as long as you&amp;nbsp;can&amp;nbsp;control them (so, monads&amp;nbsp;are great!). Simon&amp;nbsp;works at Microsoft as a&amp;nbsp;research scientist in MSR. Simon&#39;s work on Haskell is legendary and the language has seen an increase in usage over the years and a steady evolution toward being not only a general purpose, strongly-typed functional programming language, but also a practical one. No longer is Haskell suited only for academic experimentation (though this continues to be an important aspect of the language—in fact, it&#39;s one of the very effective ways the language is pushed forward). As Simon says, Haskell is like a laboratory in which to test new functional ideas and&amp;nbsp;novel language constructs.&amp;nbsp;One of the very interesting aspects of Haskell is how the surface language (so, the syntax you write) is boiled down to a very small intermediate language, System F. Simon spends a nice chunk of time in this conversation explaining this. It&#39;s a rather excellent approach. We only touch on C--, but I have a feeling I&#39;ll be interviewing Simon again in the future.How has the language evolved over the years? What&#39;s Simon working on these days (besides evolving Haskell, he&#39;s helping to make general purpose computing education&amp;nbsp;for the masses much better!)? What&#39;s next? What are the big problems he and others are tackling with respect to moving Haskell forward? As always, it&#39;s a real pleasure to converse with and learn from Simon. His passion, enthusiasm, and intelligence are infectious (well, maybe not the intelligence part—you&#39;re born with the smarts you have. So, I didn&#39;t get smarter by talking with Simon, but I sure learned a lot!). Very few people are able to explain complex concepts in ways mere mortals can understand and assim</itunes:summary>
      <itunes:duration>2223</itunes:duration>
      <link>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Simon-Peyton-Jones-Closer-to-Nirvana</link>
      <pubDate>Thu, 15 Dec 2011 19:52:04 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Charles/YOW-2011-Simon-Peyton-Jones-Closer-to-Nirvana</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_2MB_ch9.wmv" expression="full" duration="2223" fileSize="726303728" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_ch9.mp3" expression="full" duration="2223" fileSize="17786830" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_ch9.webm" expression="full" duration="2223" fileSize="134118582" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_ch9.wma" expression="full" duration="2223" fileSize="17986923" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_ch9.wmv" expression="full" duration="2223" fileSize="381026773" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_high_ch9.mp4" expression="full" duration="2223" fileSize="557165051" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_low_ch9.mp4" expression="full" duration="2223" fileSize="169073131" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_med_ch9.mp4" expression="full" duration="2223" fileSize="390070509" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones.ism/manifest" expression="full" duration="2223" fileSize="6146" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/244d/7397a754-9f91-461b-bba1-9fb8015a244d/YOW2011SimonPeytonJones_ch9.wmv" length="381026773" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>8</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Charles/YOW-2011-Simon-Peyton-Jones-Closer-to-Nirvana/RSS</wfw:commentRss>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Microsoft Research</category>
      <category>Programming Languages</category>
      <category>_techmeme</category>
      <category>YOW! 2011</category>
      <category>Simon Peyton-Jones</category>
    </item>
  <item>
      <title>C9 Lectures: Graham Hutton - How To Be More Productive</title>
      <description><![CDATA[<p>It's been far too long since we've had some meaty functional programming content on C9. Luckily, none other than <strong>Graham Hutton&nbsp;</strong>dropped off a present on our doorstep! Dr. Hutton graciously provided Channel 9 with his latest self-filmed lecture—thank you, Graham! We're honored. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /> This is certainly a treat and we appreciate it. For all of you out there interested in FP, this one's for you, and it's from one of the functional domain's <em>titans</em>. <br><br>Graham's goal here is to share technical knowledge and insights&nbsp;that span programming domains and skill sets—an <em>excellent</em> goal and one that we at Channel 9 fully support!&nbsp;</p><p>Enjoy. Learn!<br><br>From Dr. Hutton:</p><p><em>Streams, or infinite sequences, have many applications in programming, and can naturally be defined using recursive equations.&nbsp;But how do we ensure that such equations make sense, i.e. that they actually produce well-defined streams? In this talk, Graham Hutton presents a new approach to this problem, based upon the topological notion of <strong>contractive functions on streams</strong>. This talk is aimed at a general audience, and doesn't require special knowledge of topology or functional programming.</em><br><br>Lecture Materials:</p><p>Slides: <a href="http://www.cs.nott.ac.uk/~gmh/contractive.ppt">http://www.cs.nott.ac.uk/~gmh/contractive.ppt</a></p><p>Paper:&nbsp; <a href="http://www.cs.nott.ac.uk/~gmh/contractive.pdf">http://www.cs.nott.ac.uk/~gmh/contractive.pdf</a></p><p><br>Speaker Bio:</p><p><a href="http://www.cs.nott.ac.uk/~gmh" target="_blank"><strong>Graham Hutton</strong></a> is Professor of Computer Science at the University&nbsp;of Nottingham, where he co-leads the Functional Programming Lab. His research interests are in formal reasoning about program&nbsp;correctness and efficiency, with an emphasis on functional&nbsp;languages such as Haskell. He is also the author of a&nbsp;best-selling Haskell textbook, for which he's recorded&nbsp;<a href="http://channel9.msdn.com/Shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1" target="_blank"><strong>associated Channel 9 lectures</strong></a>&nbsp;that have received more than 600,000 downloads. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /><br><br></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:1137f5a76ccf44f0adc19fa2013f44d6">]]></description>
      <comments>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Graham-Hutton-How-To-Be-More-Productive</comments>
      <itunes:summary>It&#39;s been far too long since we&#39;ve had some meaty functional programming content on C9. Luckily, none other than Graham Hutton&amp;nbsp;dropped off a present on our doorstep! Dr. Hutton graciously provided Channel 9 with his latest self-filmed lecture—thank you, Graham! We&#39;re honored.  This is certainly a treat and we appreciate it. For all of you out there interested in FP, this one&#39;s for you, and it&#39;s from one of the functional domain&#39;s titans. Graham&#39;s goal here is to share technical knowledge and insights&amp;nbsp;that span programming domains and skill sets—an excellent goal and one that we at Channel 9 fully support!&amp;nbsp; Enjoy. Learn!From Dr. Hutton: Streams, or infinite sequences, have many applications in programming, and can naturally be defined using recursive equations.&amp;nbsp;But how do we ensure that such equations make sense, i.e. that they actually produce well-defined streams? In this talk, Graham Hutton presents a new approach to this problem, based upon the topological notion of contractive functions on streams. This talk is aimed at a general audience, and doesn&#39;t require special knowledge of topology or functional programming.Lecture Materials: Slides: http://www.cs.nott.ac.uk/~gmh/contractive.ppt Paper:&amp;nbsp; http://www.cs.nott.ac.uk/~gmh/contractive.pdf Speaker Bio: Graham Hutton is Professor of Computer Science at the University&amp;nbsp;of Nottingham, where he co-leads the Functional Programming Lab. His research interests are in formal reasoning about program&amp;nbsp;correctness and efficiency, with an emphasis on functional&amp;nbsp;languages such as Haskell. He is also the author of a&amp;nbsp;best-selling Haskell textbook, for which he&#39;s recorded&amp;nbsp;associated Channel 9 lectures&amp;nbsp;that have received more than 600,000 downloads.  </itunes:summary>
      <itunes:duration>2771</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Graham-Hutton-How-To-Be-More-Productive</link>
      <pubDate>Wed, 30 Nov 2011 11:18:09 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Graham-Hutton-How-To-Be-More-Productive</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_2MB_ch9.wmv" expression="full" duration="2771" fileSize="1022423313" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_ch9.mp3" expression="full" duration="2771" fileSize="22176341" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_ch9.webm" expression="full" duration="2771" fileSize="202998979" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_ch9.wma" expression="full" duration="2771" fileSize="22420827" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_ch9.wmv" expression="full" duration="2771" fileSize="446134059" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_high_ch9.mp4" expression="full" duration="2771" fileSize="700083703" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_low_ch9.mp4" expression="full" duration="2771" fileSize="243368737" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_med_ch9.mp4" expression="full" duration="2771" fileSize="494224724" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive.ism/manifest" expression="full" duration="2771" fileSize="8066" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/44d6/1137f5a7-6ccf-44f0-adc1-9fa2013f44d6/C9LecturesGrahamHuttonHowToBeMoreProductive_ch9.wmv" length="446134059" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>8</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Graham-Hutton-How-To-Be-More-Productive/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Functional Programming</category>
      <category>Graham Hutton</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
      <category>_techmeme</category>
    </item>
  <item>
      <title>MDCC TechTalk - Fun with type functions</title>
      <description><![CDATA[<p><strong>by Simon Peyton Jones, Principal Researcher, Microsoft Research</strong></p><p>Today's most widely used technology, by far, for static program verification is the ubiquitous type checker. Alas, static type systems inevitably exclude some good programs; and allow some bad ones.&nbsp; Thus motivated, Simon describes some fun he has been having with Haskell, by making the type system more expressive without losing the benefits of automatic proof and compact expression.</p><p>&nbsp;</p><p><strong><em>About </em></strong><strong><em>Simon Peyton Jones</em></strong></p><p><em>Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University, before moving to Microsoft Research (Cambridge) in 1998. </em></p><p><em>His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. He was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages. </em></p><p>More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much. His home page is at</p><p><strong><a href="http://research.microsoft.com/en-us/people/simonpj">http://research.microsoft.com/en-us/people/simonpj</a> </strong></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:05e757af3e8743da935d9f9f0141b0c4">]]></description>
      <comments>http://channel9.msdn.com/posts/MDCC-TechTalk-Fun-with-type-functions</comments>
      <itunes:summary>by Simon Peyton Jones, Principal Researcher, Microsoft Research Today&#39;s most widely used technology, by far, for static program verification is the ubiquitous type checker. Alas, static type systems inevitably exclude some good programs; and allow some bad ones.&amp;nbsp; Thus motivated, Simon describes some fun he has been having with Haskell, by making the type system more expressive without losing the benefits of automatic proof and compact expression. &amp;nbsp; About Simon Peyton Jones Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University, before moving to Microsoft Research (Cambridge) in 1998.  His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. He was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.  More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that&#39;s one reason he loves functional programming so much. His home page is at http://research.microsoft.com/en-us/people/simonpj  </itunes:summary>
      <itunes:duration>2931</itunes:duration>
      <link>http://channel9.msdn.com/posts/MDCC-TechTalk-Fun-with-type-functions</link>
      <pubDate>Tue, 22 Nov 2011 21:40:51 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/MDCC-TechTalk-Fun-with-type-functions</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_2MB_ch9.wmv" expression="full" duration="2931" fileSize="548026818" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_ch9.mp3" expression="full" duration="2931" fileSize="23456397" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_ch9.webm" expression="full" duration="2931" fileSize="212269595" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_ch9.wma" expression="full" duration="2931" fileSize="23715551" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_ch9.wmv" expression="full" duration="2931" fileSize="197271019" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_high_ch9.mp4" expression="full" duration="2931" fileSize="522542651" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_low_ch9.mp4" expression="full" duration="2931" fileSize="97129432" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_med_ch9.mp4" expression="full" duration="2931" fileSize="396796386" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2.ism/manifest" expression="full" duration="2931" fileSize="7814" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/b0c4/05e757af-3e87-43da-935d-9f9f0141b0c4/MDCCTechTalk09112011part2_ch9.wmv" length="197271019" type="video/x-ms-wmv"></enclosure>
      <dc:creator>martinesmann</dc:creator>
      <itunes:author>martinesmann</itunes:author>
      <slash:comments>2</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/MDCC-TechTalk-Fun-with-type-functions/rss</wfw:commentRss>
      <category>DPEDK</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>MDCC</category>
      <category>Microsoft Research</category>
      <category>MSR</category>
      <category>TechTalk</category>
    </item>
  <item>
      <title>MDCC TechTalk - Classes, Jim, but not as we know them</title>
      <description><![CDATA[<p><strong>by Simon Peyton Jones, Principal Researcher, Microsoft Research</strong></p><p>Haskell is now quite widely used, but its most important contributions are the ideas that it embodies. In this talk Simon focuses on one of these ideas, namely type classes, with a few anecdotes and reflections along the way about the process of developing the language.</p><p>Type classes are probably Haskell's most distinctive feature. The original idea is very neat and, better still, it led to a long series of subsequent generalizations and innovations. Indeed, although the language is now nineteen years old, Haskell's type system is still in a state of furious development. For example, Simon is involved in adding type-level functions to Haskell, as he briefly describes.&nbsp;</p><p>Simon explains what type classes are, how they differ from the classes of mainstream object oriented languages, why he thinks they are so cool, and what the hot topics are.&nbsp;</p><p><strong><em>About </em></strong><strong><em>Simon Peyton Jones</em></strong></p><p><em>Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University, before moving to Microsoft Research (Cambridge) in 1998. </em></p><p><em>His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. He was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages. </em></p><p>More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particularly motivated by direct use of principled theory to practical language design and implementation -- that's one reason he loves functional programming so much. <br>His home page is at</p><p><strong><a href="http://research.microsoft.com/en-us/people/simonpj">http://research.microsoft.com/en-us/people/simonpj</a> </strong></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:9caa7d5e9b474769a0f99f9f01419513">]]></description>
      <comments>http://channel9.msdn.com/posts/MDCC-TechTalk-Classes-Jim-but-not-as-we-know-them</comments>
      <itunes:summary>by Simon Peyton Jones, Principal Researcher, Microsoft Research Haskell is now quite widely used, but its most important contributions are the ideas that it embodies. In this talk Simon focuses on one of these ideas, namely type classes, with a few anecdotes and reflections along the way about the process of developing the language. Type classes are probably Haskell&#39;s most distinctive feature. The original idea is very neat and, better still, it led to a long series of subsequent generalizations and innovations. Indeed, although the language is now nineteen years old, Haskell&#39;s type system is still in a state of furious development. For example, Simon is involved in adding type-level functions to Haskell, as he briefly describes.&amp;nbsp; Simon explains what type classes are, how they differ from the classes of mainstream object oriented languages, why he thinks they are so cool, and what the hot topics are.&amp;nbsp; About Simon Peyton Jones Simon Peyton Jones, MA, MBCS, CEng, graduated from Trinity College Cambridge in 1980. After two years in industry, he spent seven years as a lecturer at University College London, and nine years as a professor at Glasgow University, before moving to Microsoft Research (Cambridge) in 1998.  His main research interest is in functional programming languages, their implementation, and their application. He has led a succession of research projects focused around the design and implementation of production-quality functional-language systems for both uniprocessors and parallel machines. He was a key contributor to the design of the now-standard functional language Haskell, and is the lead designer of the widely-used Glasgow Haskell Compiler (GHC). He has written two textbooks about the implementation of functional languages.  More generally, he is interested in language design, rich type systems, software component architectures, compiler technology, code generation, runtime systems, virtual machines, and garbage collection. He is particul</itunes:summary>
      <itunes:duration>4014</itunes:duration>
      <link>http://channel9.msdn.com/posts/MDCC-TechTalk-Classes-Jim-but-not-as-we-know-them</link>
      <pubDate>Tue, 22 Nov 2011 21:40:02 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/posts/MDCC-TechTalk-Classes-Jim-but-not-as-we-know-them</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_2MB_ch9.wmv" expression="full" duration="4014" fileSize="695457275" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_ch9.mp3" expression="full" duration="4014" fileSize="32116302" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_ch9.webm" expression="full" duration="4014" fileSize="274312569" type="video/webm" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_ch9.wma" expression="full" duration="4014" fileSize="32469207" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_ch9.wmv" expression="full" duration="4014" fileSize="279821517" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_high_ch9.mp4" expression="full" duration="4014" fileSize="718668080" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_low_ch9.mp4" expression="full" duration="4014" fileSize="157215193" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_med_ch9.mp4" expression="full" duration="4014" fileSize="551238623" type="video/mp4" medium="video"></media:content>
        <media:content url="http://smooth.ch9.ms/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1.ism/manifest" expression="full" duration="4014" fileSize="7814" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/9513/9caa7d5e-9b47-4769-a0f9-9f9f01419513/MDCCTechTalk09112011part1_ch9.wmv" length="279821517" type="video/x-ms-wmv"></enclosure>
      <dc:creator>martinesmann</dc:creator>
      <itunes:author>martinesmann</itunes:author>
      <slash:comments>5</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/posts/MDCC-TechTalk-Classes-Jim-but-not-as-we-know-them/rss</wfw:commentRss>
      <category>DPEDK</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>MDCC</category>
      <category>Microsoft Research</category>
      <category>MSR</category>
      <category>TechTalk</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Ralf L&#228;mmel - Going Bananas</title>
      <description><![CDATA[ <p>Dr. Ralf Lämmel returns&nbsp;for an&nbsp;exploration of&nbsp;<strong>folds</strong>, aka <strong>bananas</strong>. This is lecture <strong>5 </strong>in <strong><a href="https://channel9.msdn.com/Tags/ralf-laemmel">his C9 Lecture series</a></strong>&nbsp; covering advanced&nbsp;functional programming topics.&nbsp;Welcome back, Ralf! We're so happy to have you here!</p><p>Why <em>bananas</em>, Ralf?</p><p><em>Banana </em>is functional programming slang for &quot;fold&quot;—an application of the <a href="http://en.wikipedia.org/wiki/Catamorphism">catamorphic recursion scheme</a> most widely known in the <a href="http://en.wikibooks.org/wiki/Haskell/List_processing">higher-order list processing</a> tradition of&nbsp;<a href="http://en.wikipedia.org/wiki/Bird-Meertens_Formalism">Bird-Meertens Formalism</a> and the Squiggol community. <a href="http://research.microsoft.com/en-us/um/people/emeijer/">Erik Meijer</a> used to be known as the &quot;banana man&quot; because of his early research on the subject; he also co-authored <a href="http://academic.research.microsoft.com/Paper/296068.aspx">the seminal paper with theoretical (categorical) foundations on the subject</a>. Incidentally, the paper used the notation of so-called &quot;banana brackets&quot; (instead of using the plain string &quot;foldr&quot;), which sort of explains why we sometimes say bananas. There is no shortage of crazy paper titles on the subject, by the way: &quot;Functional Programming with Bananas, Lenses, Envelopes, and Barbed Wire,&quot; &quot;<a href="http://research.microsoft.com/en-us/um/people/emeijer/Papers/Bananas.pdf">Bananas in Space</a>: ...,&quot; &quot;<a href="http://homepages.cwi.nl/~ralf/wgp00/">Dealing with large bananas</a>,&quot; &quot;<a href="http://www.seas.upenn.edu/~sweirich/papers/itabox/MS-CIS-03-26.pdf">Boxes go bananas</a>: ...,&quot; &quot;<a href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;_udi=B6V1G-3VTK49S-W&amp;_user=10&amp;_coverDate=11%2F30%2F1996&amp;_rdoc=1&amp;_fmt=high&amp;_orig=search&amp;_origin=search&amp;_sort=d&amp;_docanchor=&amp;view=c&amp;_acct=C000050221&amp;_version=1&amp;_urlVersion=0&amp;_userid=10&amp;md5=d380f8c829a0576bfebf1c5a1d354d68&amp;searchtype=a">See more through lenses than bananas</a>,&quot; etc.</p><p>More to the point, <strong><em><a href="http://en.wikibooks.org/wiki/Haskell/List_processing#foldr">foldr</a></em></strong>&nbsp;is the Swiss Army Knife in functional programming. Monoidal reductions of lists or mapping over lists and many other list-processing idioms can be modeled with the regular recursion operator <em>foldr</em>. Even a beginning lecture on functional programming would have to discuss foldr. Not discussing foldr in a Haskell course, however, is like not discussing <em>for loops </em>in a C# course. Indeed, the lectures on <a href="http://channel9.msdn.com/Shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1">Graham Hutton's introductory Haskell course</a> covered the basics of foldr very well. However, a lot more interesting stuff concerning folds or, say, bananas becomes apparent when one becomes fluent in functional programming. For instance, foldr and friends suddenly make sense for container types other than the concrete list type. Foldr and friends even generalize to arbitrary algebraic datatypes in different ways. The combination of folds and monoids also helps us understand key aspects of parallel data processing. These are the more advanced banana subjects that are covered by Ralf Lämmel's lecture this time. He has also contributed a stack of bananas papers over the years, and he draws from that interest.</p><p><strong>Learn more:<br><a href="http://developers.svn.sourceforge.net/viewvc/developers/repository/ralfs-channel9-lectures/decks/bananas.pdf"><br>Going Bananas lecture slide&nbsp;deck</a></strong>&nbsp;<br><strong><a href="http://developers.svn.sourceforge.net/viewvc/developers/repository/ralfs-channel9-lectures/code/bananas/">Download source code for this lecture</a><br><a href="http://professor-fish.blogspot.com/2010/12/underappreciated-banana-and-its-buddy.html">Ralf's blog</a><br><br>For the exercises/riddles in the slide deck:<br><br></strong><em>Slide number (complexity):</em></p><p>12 (medium)<br>18 (medium)<br>21 (medium)<br>23 (easy)<br>24 (hard)<br>31 (hard)<br>34 (easy)</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:f497db42509940108e609e700144dba2">]]></description>
      <comments>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-Going-Bananas</comments>
      <itunes:summary> Dr. Ralf L&#228;mmel returns&amp;nbsp;for an&amp;nbsp;exploration of&amp;nbsp;folds, aka bananas. This is lecture 5 in his C9 Lecture series&amp;nbsp; covering advanced&amp;nbsp;functional programming topics.&amp;nbsp;Welcome back, Ralf! We&#39;re so happy to have you here! Why bananas, Ralf? Banana is functional programming slang for &amp;quot;fold&amp;quot;—an application of the catamorphic recursion scheme most widely known in the higher-order list processing tradition of&amp;nbsp;Bird-Meertens Formalism and the Squiggol community. Erik Meijer used to be known as the &amp;quot;banana man&amp;quot; because of his early research on the subject; he also co-authored the seminal paper with theoretical (categorical) foundations on the subject. Incidentally, the paper used the notation of so-called &amp;quot;banana brackets&amp;quot; (instead of using the plain string &amp;quot;foldr&amp;quot;), which sort of explains why we sometimes say bananas. There is no shortage of crazy paper titles on the subject, by the way: &amp;quot;Functional Programming with Bananas, Lenses, Envelopes, and Barbed Wire,&amp;quot; &amp;quot;Bananas in Space: ...,&amp;quot; &amp;quot;Dealing with large bananas,&amp;quot; &amp;quot;Boxes go bananas: ...,&amp;quot; &amp;quot;See more through lenses than bananas,&amp;quot; etc. More to the point, foldr&amp;nbsp;is the Swiss Army Knife in functional programming. Monoidal reductions of lists or mapping over lists and many other list-processing idioms can be modeled with the regular recursion operator foldr. Even a beginning lecture on functional programming would have to discuss foldr. Not discussing foldr in a Haskell course, however, is like not discussing for loops in a C# course. Indeed, the lectures on Graham Hutton&#39;s introductory Haskell course covered the basics of foldr very well. However, a lot more interesting stuff concerning folds or, say, bananas becomes apparent when one becomes fluent in functional programming. For instance, foldr and friends suddenly make sense for container types other than the concrete list type. Foldr and friends even gene</itunes:summary>
      <itunes:duration>4113</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-Going-Bananas</link>
      <pubDate>Thu, 20 Jan 2011 19:53:14 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-Going-Bananas</guid>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_100_ch9.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_220_ch9.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:thumbnail url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_custom_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_2MB_ch9.wmv" expression="full" duration="4113" fileSize="248666673" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_ch9.mp3" expression="full" duration="4113" fileSize="32907311" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_ch9.wma" expression="full" duration="4113" fileSize="33274279" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_ch9.wmv" expression="full" duration="4113" fileSize="226750112" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_high_ch9.mp4" expression="full" duration="4113" fileSize="1138421625" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_low_ch9.mp4" expression="full" duration="4113" fileSize="149429239" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_Zune_ch9.wmv" expression="full" duration="4113" fileSize="153454166" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ak.channel9.msdn.com/ch9/DBA2/F497DB42-5099-4010-8E60-9E700144DBA2/C9LecturesRalfLaemmelGoingBananas_ch9.wmv" length="226750112" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>6</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-Going-Bananas/RSS</wfw:commentRss>
      <category>Advanced</category>
      <category>C9 Lectures</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Monad</category>
      <category>Monads</category>
      <category>Programming Languages</category>
      <category>Ralf Laemmel</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Ralf L&#228;mmel - The Quick Essence of Functional Programming</title>
      <description><![CDATA[ <p>We had to cover monads eventually, and there are many great monad tutorials out there (see, for example, here:<a href="http://www.haskell.org/haskellwiki/Tutorials#Using_monads"> http://www.haskell.org/haskellwiki/Tutorials#Using_monads</a>). 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.</p><p>Today, Ralf Lämmel's lecture goes back to the roots, essentially revisiting Wadler's &quot;The essence of functional programming&quot;—the 1992 paper that discovered monads and popularized their use in functional programming. Ralf Lämmel's lecture and accompanying code distribution show Wadler's seminal insight: those original scenarios and observations still make sense today. Indeed, Simon Marlow (a Haskell/GHC high priest&nbsp;@ MSR Cambridge) recently noted: &quot;it's still the best monad tutorial&quot; (see<a href="http://twitter.com/simonmar/status/21397398061"> http://twitter.com/simonmar/status/21397398061</a>).</p><p>Focusing on a few generically useful monads, Dr. Lä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).<br><br></p><p>Slide deck:</p><p><a href="http://developers.svn.sourceforge.net/viewvc/developers/repository/ralfs-channel9-lectures/decks/monads.pdf">http://developers.svn.sourceforge.net/viewvc/developers/repository/ralfs-channel9-lectures/decks/monads.pdf</a></p><p>Exercises/riddles:</p><p>Slide #4 (easy), #6 (modest), #13 (modest), #40 (hard)</p><p>Code distribution:</p><p><a href="http://developers.svn.sourceforge.net/viewvc/developers/repository/ralfs-channel9-lectures/code/monads/">http://developers.svn.sourceforge.net/viewvc/developers/repository/ralfs-channel9-lectures/code/monads/</a></p><p>&nbsp;Blog post:</p><p><a href="http://professor-fish.blogspot.com/2010/09/essence-of-essence-of-functional.html">http://professor-fish.blogspot.com/2010/09/essence-of-essence-of-functional.html</a></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:0aa4103b49704affbddb9df400a5c263">]]></description>
      <comments>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming</comments>
      <itunes:summary> 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 </itunes:summary>
      <itunes:duration>3288</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming</link>
      <pubDate>Wed, 22 Sep 2010 15:58:37 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming</guid>
      <media:thumbnail url="http://rev9.blob.core.windows.net/thumbnail/1b2a3d2a-490d-4aa2-bfd0-676e2207fa28.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://rev9.blob.core.windows.net/thumbnail/81a30877-1bc3-4e19-91e1-d2898c380eb7.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/4391/574391/C9LecturesLaemmelAFPMonads_512_ch9.jpg" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4391/574391/C9LecturesLaemmelAFPMonads_2MB_ch9.wmv" expression="full" duration="3288" fileSize="1" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4391/574391/C9LecturesLaemmelAFPMonads_ch9.mp3" expression="full" duration="3288" fileSize="1" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4391/574391/C9LecturesLaemmelAFPMonads_ch9.mp4" expression="full" duration="3288" fileSize="1" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4391/574391/C9LecturesLaemmelAFPMonads_ch9.wma" expression="full" duration="3288" fileSize="1" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4391/574391/C9LecturesLaemmelAFPMonads_ch9.wmv" expression="full" duration="3288" fileSize="1" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/4391/574391/C9LecturesLaemmelAFPMonads_ch9.wmv" length="0" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>17</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-AFP-The-Quick-Essence-of-Functional-Programming/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Monad</category>
      <category>Monads</category>
      <category>Programming</category>
      <category>Ralf Laemmel</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Ralf L&#228;mmel - Advanced Functional Programming - Evolution of an Interpreter</title>
      <description><![CDATA[
<p>In&nbsp;part&nbsp;3 of the Advanced Functional Programming lecture series, Dr. Lämmel focuses on the domain of language interpretation as a&nbsp;method of understanding some important functional programming techniques. As a side effect, some basics of programming language
 theory are also informally presented.</p>
<p>More specifically, this lecture develops an interpreter for a simple functional programming language that contains Booleans, natural numbers, lambdas, and recursive lets. The interpreter is actually developed in a stepwise manner, which is why the lecture
 is called &quot;Evolution of an Interpreter.&quot;<br /><br />In each step, another construct is added and the impact of the extension onto the interpreter is analyzed. In this manner, several interesting programming techniques are exercised. For instance, the Maybe type constructor is pervasively used for dealing with
 partiality, and Haskell's fixed point combinator is used to model the semantics (i.e., interpretation) of recursive bindings.
<br /><br />This lecture also prepares us&nbsp;for some more advanced subjects. For instance, the next lecture in this series will cover the intriguing subject of monads while using interpretation as the application scenario. Soon, generalized folds (<a href="http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=3638E59968F7B2462EA33C607DF7B685?doi=10.1.1.41.125&amp;rep=rep1&amp;type=pdf" target="_blank">or
 bananas, according to Erik Meijer</a>) will also be discussed (the folds will traverse abstract syntax trees as opposed to lists).<br /><br />Enjoy. Learn. <br /><br />Thanks to Ralf for providing another <em>excellent</em> lecture!<br /><br />Earlier lectures <a shape="rect" href="http://channel9.msdn.com/tags/ralf-laemmel" shape="rect" target="_blank">
<strong>here</strong></a>.</p>
<p>Slides: <a shape="rect" href="https://developers.svn.sourceforge.net/svnroot/developers/repository/ralfs-channel9-lectures/decks/interpretation.pdf" shape="rect">
https://developers.svn.sourceforge.net/svnroot/developers/repository/ralfs-channel9-lectures/decks/interpretation.pdf</a></p>
<br />Related Blog Post and Code:<br /><p><a shape="rect" href="http://professor-fish.blogspot.com/2010/08/bunch-of-interpreters-using-cpp-and.html" shape="rect">http://professor-fish.blogspot.com/2010/08/bunch-of-interpreters-using-cpp-and.html</a></p>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:29e1c19cdf1d439d81d99de90185cbf3">]]></description>
      <comments>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-Advanced-Functional-Programming-Evolution-of-an-Interpreter</comments>
      <itunes:summary>
In&amp;nbsp;part&amp;nbsp;3 of the Advanced Functional Programming lecture series, Dr. L&#228;mmel focuses on the domain of language interpretation as a&amp;nbsp;method of understanding some important functional programming techniques. As a side effect, some basics of programming language
 theory are also informally presented. 
More specifically, this lecture develops an interpreter for a simple functional programming language that contains Booleans, natural numbers, lambdas, and recursive lets. The interpreter is actually developed in a stepwise manner, which is why the lecture
 is called &amp;quot;Evolution of an Interpreter.&amp;quot;In each step, another construct is added and the impact of the extension onto the interpreter is analyzed. In this manner, several interesting programming techniques are exercised. For instance, the Maybe type constructor is pervasively used for dealing with
 partiality, and Haskell&#39;s fixed point combinator is used to model the semantics (i.e., interpretation) of recursive bindings.
This lecture also prepares us&amp;nbsp;for some more advanced subjects. For instance, the next lecture in this series will cover the intriguing subject of monads while using interpretation as the application scenario. Soon, generalized folds (or
 bananas, according to Erik Meijer) will also be discussed (the folds will traverse abstract syntax trees as opposed to lists).Enjoy. Learn. Thanks to Ralf for providing another excellent lecture!Earlier lectures 
here. 
Slides: 
https://developers.svn.sourceforge.net/svnroot/developers/repository/ralfs-channel9-lectures/decks/interpretation.pdf 
Related Blog Post and Code:http://professor-fish.blogspot.com/2010/08/bunch-of-interpreters-using-cpp-and.html 
</itunes:summary>
      <itunes:duration>3158</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-Advanced-Functional-Programming-Evolution-of-an-Interpreter</link>
      <pubDate>Tue, 31 Aug 2010 20:01:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-Advanced-Functional-Programming-Evolution-of-an-Interpreter</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/320/704f6f38-68e2-46b2-9d63-13449d789d0a.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/512/8d7b2a06-efc9-4657-a60e-e43dad409234.jpg" height="0" width="0"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/569400_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/569400_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/85/ce3454ec-c437-4c3d-96a6-43957c2154dc.jpg" height="64" width="85"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9400/569400/C9LecturesRalfLaemmelAFPInterpretation_2MB_ch9.wmv" expression="full" duration="3158" fileSize="346614705" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9400/569400/C9LecturesRalfLaemmelAFPInterpretation_ch9.mp3" expression="full" duration="3158" fileSize="25266689" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9400/569400/C9LecturesRalfLaemmelAFPInterpretation_ch9.mp4" expression="full" duration="3158" fileSize="610863588" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9400/569400/C9LecturesRalfLaemmelAFPInterpretation_ch9.wma" expression="full" duration="3158" fileSize="25553997" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9400/569400/C9LecturesRalfLaemmelAFPInterpretation_ch9.wmv" expression="full" duration="3158" fileSize="408360379" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9400/569400/C9LecturesRalfLaemmelAFPInterpretation_Zune_ch9.wmv" expression="full" duration="3158" fileSize="373720434" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/9400/569400/C9LecturesRalfLaemmelAFPInterpretation_ch9.wmv" length="408360379" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>18</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Lmmel-Advanced-Functional-Programming-Evolution-of-an-Interpreter/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Computer Science</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
      <category>Ralf Laemmel</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Ralf L&#228;mmel - Advanced Functional Programming - The Expression Problem</title>
      <description><![CDATA[<em>&quot;The Expression Problem is a new name for an old problem. The goal is to define a datatype by cases, where one can add new cases to the datatype and new functions over the datatype, without recompiling existing code, and while retaining static type
 safety (e.g., no casts).&quot;</em> - Philip Wadler<br /><br />Welcome to another series of&nbsp;<a shape="rect" href="http://channel9.msdn.com/tags/C9&#43;Lectures" target="_blank" shape="rect">C9 Lectures</a> covering
<a shape="rect" href="http://channel9.msdn.com/tags/functional&#43;programming" target="_blank" shape="rect">
functional programming</a>. For this series,&nbsp;<a shape="rect" href="http://www.uni-koblenz.de/~laemmel/Site/Bio.html" target="_blank" shape="rect">Dr. Ralf Lämmel</a> has generously taken the time to produce videos for Channel 9 from his office at the University
 of Koblenz-Landau (Germany), where he is a professor of computer science. The idea here is to take the next step from Erik Meijer's fantastic introductory series on functional programming. Accordingly, Ralf's series will dive into more advanced areas of functional
 programming, again focusing on the Haskell language (the functional concepts here span beyond any one functional language, however).<br /><br />To begin, Dr.&nbsp;Lämmel teaches us about the <a shape="rect" href="http://en.wikipedia.org/wiki/Expression_Problem" target="_blank" shape="rect">
Expression Problem</a>. Now put on your thinking&nbsp;caps, make yourself comfortable, and enjoy this installment of functional programming lectures on Channel 9. Huge thanks to Dr. Lämmel, both for doing this series for Channel 9 and for filming and producing it
 all&nbsp;by himself! Finally, thanks to&nbsp;<a shape="rect" href="http://channel9.msdn.com/tags/erik&#43;meijer" target="_blank" shape="rect">Erik Meijer</a> for suggesting this series and putting me in touch with Ralf.<br /><br />See Dr. Lämmel's blog post about the new lecture series here:&nbsp;<a shape="rect" href="http://professor-fish.blogspot.com/2010/08/lecture-series-on-advanced-functional.html" shape="rect">http://professor-fish.blogspot.com/2010/08/lecture-series-on-advanced-functional.html</a>
<br /><br />[Homework assignment is on slide 26 - <a shape="rect" href="http://vegkfg.bay.livefilestore.com/y1ps28dTqLK4LH8IGQUise4kqgbiEBS9XJW3oXcg2nvxgIhS3wy05TmdLg6WdRH3KmR76vzOwhhiYi0wHl5YZ78RDCFKe_E8bUX/RalfLaemmelLectures.pdf?download&amp;psid=2" target="_blank" shape="rect">
<strong>Get the slides</strong></a>]  <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:2031e11381514612afa29de90185df59">]]></description>
      <comments>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Laemmel-Advanced-Functional-Programming-The-Expression-Problem</comments>
      <itunes:summary>&amp;quot;The Expression Problem is a new name for an old problem. The goal is to define a datatype by cases, where one can add new cases to the datatype and new functions over the datatype, without recompiling existing code, and while retaining static type
 safety (e.g., no casts).&amp;quot; - Philip WadlerWelcome to another series of&amp;nbsp;C9 Lectures covering

functional programming. For this series,&amp;nbsp;Dr. Ralf L&#228;mmel has generously taken the time to produce videos for Channel 9 from his office at the University
 of Koblenz-Landau (Germany), where he is a professor of computer science. The idea here is to take the next step from Erik Meijer&#39;s fantastic introductory series on functional programming. Accordingly, Ralf&#39;s series will dive into more advanced areas of functional
 programming, again focusing on the Haskell language (the functional concepts here span beyond any one functional language, however).To begin, Dr.&amp;nbsp;L&#228;mmel teaches us about the 
Expression Problem. Now put on your thinking&amp;nbsp;caps, make yourself comfortable, and enjoy this installment of functional programming lectures on Channel 9. Huge thanks to Dr. L&#228;mmel, both for doing this series for Channel 9 and for filming and producing it
 all&amp;nbsp;by himself! Finally, thanks to&amp;nbsp;Erik Meijer for suggesting this series and putting me in touch with Ralf.See Dr. L&#228;mmel&#39;s blog post about the new lecture series here:&amp;nbsp;http://professor-fish.blogspot.com/2010/08/lecture-series-on-advanced-functional.html
[Homework assignment is on slide 26 - 
Get the slides] </itunes:summary>
      <itunes:duration>2871</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Laemmel-Advanced-Functional-Programming-The-Expression-Problem</link>
      <pubDate>Tue, 10 Aug 2010 18:22:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Laemmel-Advanced-Functional-Programming-The-Expression-Problem</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/563672_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/563672_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_320_ch9.png" height="240" width="320"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_85_ch9.png" height="64" width="85"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_2MB_ch9.wmv" expression="full" duration="2871" fileSize="277031039" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_ch9.mp3" expression="full" duration="2871" fileSize="22976908" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_ch9.mp4" expression="full" duration="2871" fileSize="401981301" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_ch9.wma" expression="full" duration="2871" fileSize="23237913" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_ch9.wmv" expression="full" duration="2871" fileSize="230086658" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_Zune_ch9.wmv" expression="full" duration="2871" fileSize="164326718" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/3672/563672/C9LecturesRalfLaemmelExpressionProblem_ch9.wmv" length="230086658" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>12</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Dr-Ralf-Laemmel-Advanced-Functional-Programming-The-Expression-Problem/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
      <category>Ralf Laemmel</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 13 of 13</title>
      <description><![CDATA[<p>Well, my friends, the day has arrived. For thirteen weeks, you have been provided all the conceptual tools to take the leap into the deep end of the functional programming pool and float safely. The great Dr. Erik Meijer has generously given his value time to teach us the fundamentals as delivered by Graham Hutton in his book <a href="http://www.cs.nott.ac.uk/~gmh/book.html" target="_blank"><br>Programming in Haskell</a>. Of course, Erik merged his own extensive knowledge, unique perspective and experience into the educational weave: so, you got the best of two worlds. We hope you enjoyed this series, the first in a new a format of Channel 9 content (lectures). <br><br>The Channel 9 team and Niner nation&nbsp;thank our dear friend Erik for this <em>stellar</em> contribution to Channel 9 and programming education, generally. Of course, we also thank Graham Hutton for writing the book (and&nbsp;for&nbsp;guest lecturing <a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13/" target="_blank">Chapter 11</a>)&nbsp;that Erik is both so fond of and which provided&nbsp;a&nbsp;basis for these lectures, which, by the way, were all&nbsp;done&nbsp;in true Channel 9 fashion: They&nbsp;were recorded in single takes with Erik doing a brilliant job articulating, contextualizing, expanding on&nbsp;the fundamentals and being, well, Erik, one of our favorite geniuses, all in real time.<br><br>In <strong>Chapter 13</strong>, <strong>Equational Reasoning </strong>(and also revealing why Erik says 'uhm' and 'you know' so often), the grand finale, Dr. Meijer digs into&nbsp;referential transparency and being able to replace equals by equals in all contexts.<br>In some sense, the purity inherent in&nbsp;functional languages like&nbsp;Haskell makes it easy to express and implement equational reasoning. In Haskell, our old friend &quot;=&quot; means &quot;is equal to by definition&quot;. But what does equational reasoning<br><em>mean</em>? It is clear that propositional logic is too weak for many applications and that&nbsp;equational logic is a first step towards a more powerful system*. Is it? Dr. Meijer, please do explain.<br><br>Tune in. Enjoy.<br><br><em>* source:&nbsp;</em><a href="http://www.cs.cmu.edu/~cdm/pdf/EquLogic.pdf"><em>http://www.cs.cmu.edu/~cdm/pdf/EquLogic.pdf</em></a><br><br><strong></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong><strong></strong></strong></p><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:069bca18bfa240239d0e9dea00429ec7">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13</comments>
      <itunes:summary>Well, my friends, the day has arrived. For thirteen weeks, you have been provided all the conceptual tools to take the leap into the deep end of the functional programming pool and float safely. The great Dr. Erik Meijer has generously given his value time to teach us the fundamentals as delivered by Graham Hutton in his book Programming in Haskell. Of course, Erik merged his own extensive knowledge, unique perspective and experience into the educational weave: so, you got the best of two worlds. We hope you enjoyed this series, the first in a new a format of Channel 9 content (lectures). The Channel 9 team and Niner nation&amp;nbsp;thank our dear friend Erik for this stellar contribution to Channel 9 and programming education, generally. Of course, we also thank Graham Hutton for writing the book (and&amp;nbsp;for&amp;nbsp;guest lecturing Chapter 11)&amp;nbsp;that Erik is both so fond of and which provided&amp;nbsp;a&amp;nbsp;basis for these lectures, which, by the way, were all&amp;nbsp;done&amp;nbsp;in true Channel 9 fashion: They&amp;nbsp;were recorded in single takes with Erik doing a brilliant job articulating, contextualizing, expanding on&amp;nbsp;the fundamentals and being, well, Erik, one of our favorite geniuses, all in real time.In Chapter 13, Equational Reasoning (and also revealing why Erik says &#39;uhm&#39; and &#39;you know&#39; so often), the grand finale, Dr. Meijer digs into&amp;nbsp;referential transparency and being able to replace equals by equals in all contexts.In some sense, the purity inherent in&amp;nbsp;functional languages like&amp;nbsp;Haskell makes it easy to express and implement equational reasoning. In Haskell, our old friend &amp;quot;=&amp;quot; means &amp;quot;is equal to by definition&amp;quot;. But what does equational reasoningmean? It is clear that propositional logic is too weak for many applications and that&amp;nbsp;equational logic is a first step towards a more powerful system*. Is it? Dr. Meijer, please do explain.Tune in. Enjoy.* source:&amp;nbsp;http://www.cs.cmu.edu/~cdm/pdf/EquLogic.pdfChapter 1 Chapter 2</itunes:summary>
      <itunes:duration>4899</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13</link>
      <pubDate>Thu, 24 Dec 2009 23:07:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/513656_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/513656_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/6/5/6/3/1/5/C9LecturesMeijerFPC13_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/5/6/3/1/5/C9LecturesMeijerFPC13_2MB_ch9.wmv" expression="full" duration="4899" fileSize="1198266751" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/5/6/3/1/5/C9LecturesMeijerFPC13_ch9.mp3" expression="full" duration="4899" fileSize="39198730" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/5/6/3/1/5/C9LecturesMeijerFPC13_ch9.mp4" expression="full" duration="4899" fileSize="473173252" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/5/6/3/1/5/C9LecturesMeijerFPC13_ch9.wma" expression="full" duration="4899" fileSize="39627737" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/5/6/3/1/5/C9LecturesMeijerFPC13_ch9.wmv" expression="full" duration="4899" fileSize="687722119" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/5/6/3/1/5/C9LecturesMeijerFPC13_ch9.wmv" length="687722119" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>20</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 12 of 13</title>
      <description><![CDATA[<p>In <strong>Chapter 12, Lazy Evaluation</strong>, Dr. Meijer takes us on a journey into the world of order of evaluation (when expressions are evaluated). In the case of lazy evaluation, computation is delayed until the result of the computation is known to be&nbsp;required. <br><br>Most programming languages that most of you use day to day use eager or strict evaluation, which is the<br><em>opposite</em> of lazy evaluation. In the strict evaluation world, expressions are evaluated as soon as they are bound to a variable (this is also known as greedy evaluation). In Haskell, laziness is first class!<br><br>Tune in. Learn and enjoy!<br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p><p>&nbsp;</p><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:14093071806540b4a0ba9dea0042b105">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13</comments>
      <itunes:summary>In Chapter 12, Lazy Evaluation, Dr. Meijer takes us on a journey into the world of order of evaluation (when expressions are evaluated). In the case of lazy evaluation, computation is delayed until the result of the computation is known to be&amp;nbsp;required. Most programming languages that most of you use day to day use eager or strict evaluation, which is theopposite of lazy evaluation. In the strict evaluation world, expressions are evaluated as soon as they are bound to a variable (this is also known as greedy evaluation). In Haskell, laziness is first class!Tune in. Learn and enjoy!Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 &amp;nbsp; &amp;nbsp; </itunes:summary>
      <itunes:duration>2843</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13</link>
      <pubDate>Fri, 18 Dec 2009 01:00:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/504215_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/504215_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/5/1/2/4/0/5/C9LecturesErikMeijerFPC12_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/1/2/4/0/5/C9LecturesErikMeijerFPC12_2MB_ch9.wmv" expression="full" duration="2843" fileSize="783020019" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/1/2/4/0/5/C9LecturesErikMeijerFPC12_ch9.mp3" expression="full" duration="2843" fileSize="22748483" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/1/2/4/0/5/C9LecturesErikMeijerFPC12_ch9.mp4" expression="full" duration="2843" fileSize="331105991" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/1/2/4/0/5/C9LecturesErikMeijerFPC12_ch9.wma" expression="full" duration="2843" fileSize="23000591" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/5/1/2/4/0/5/C9LecturesErikMeijerFPC12_ch9.wmv" expression="full" duration="2843" fileSize="465549329" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/5/1/2/4/0/5/C9LecturesErikMeijerFPC12_ch9.wmv" length="465549329" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>16</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Graham Hutton - Functional Programming Fundamentals Chapter 11 of 13</title>
      <description><![CDATA[<p>Yes. You read the title correctly! For today's lecture&nbsp;in the&nbsp;Functional Programming Fundamentals series of lectures the great&nbsp;Dr. <a href="http://www.cs.nott.ac.uk/~gmh" shape="rect" target="_blank">Graham Hutton</a>, author of the&nbsp;<a href="http://www.cs.nott.ac.uk/~gmh/book.html" shape="rect" target="_blank">Programming in Haskell</a> book that Dr. Erik Meijer has based&nbsp;this&nbsp;lecture series on, <strong>is guest lecturing Chapter 11 - The Countdown Problem!</strong> Thank you, Graham! What an honor and a treat to have you on Channel 9, especially in this context. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /><br><br>This lecture was filmed in Dr. Hutton's office at the&nbsp;<a href="http://www.nottingham.ac.uk/" shape="rect" target="_blank">University of Nottingham</a>. What is the Countdown Problem, exactly?&nbsp;It's a&nbsp;numbers game, based loosely on a very popular television series. The point is that you will need to use, well, functions to solve the Countdown Problem.&nbsp;Of course, it&nbsp;goes without saying that Haskell is very well suited to solve these kinds of problems. <br><br>Tune in and learn from a Haskell master. It should be clear that you will want to have had gone through the earlier episodes (if you are beginning with functional programming and Haskell, specifically) to get the most out of this lecture. That said, it's quite amazing to learn directly from the author himself. What a nice surprise!<br><br>Enjoy!<br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:9bff5ce15d774133b7d19dea0042b414">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13</comments>
      <itunes:summary>Yes. You read the title correctly! For today&#39;s lecture&amp;nbsp;in the&amp;nbsp;Functional Programming Fundamentals series of lectures the great&amp;nbsp;Dr. Graham Hutton, author of the&amp;nbsp;Programming in Haskell book that Dr. Erik Meijer has based&amp;nbsp;this&amp;nbsp;lecture series on, is guest lecturing Chapter 11 - The Countdown Problem! Thank you, Graham! What an honor and a treat to have you on Channel 9, especially in this context. This lecture was filmed in Dr. Hutton&#39;s office at the&amp;nbsp;University of Nottingham. What is the Countdown Problem, exactly?&amp;nbsp;It&#39;s a&amp;nbsp;numbers game, based loosely on a very popular television series. The point is that you will need to use, well, functions to solve the Countdown Problem.&amp;nbsp;Of course, it&amp;nbsp;goes without saying that Haskell is very well suited to solve these kinds of problems. Tune in and learn from a Haskell master. It should be clear that you will want to have had gone through the earlier episodes (if you are beginning with functional programming and Haskell, specifically) to get the most out of this lecture. That said, it&#39;s quite amazing to learn directly from the author himself. What a nice surprise!Enjoy!Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 &amp;nbsp; </itunes:summary>
      <itunes:duration>2966</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13</link>
      <pubDate>Thu, 10 Dec 2009 19:15:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/504214_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/504214_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/4/1/2/4/0/5/C9LecturesFPGrahamHuttonC11_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4/1/2/4/0/5/C9LecturesFPGrahamHuttonC11_2MB_ch9.wmv" expression="full" duration="2966" fileSize="878535233" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4/1/2/4/0/5/C9LecturesFPGrahamHuttonC11_ch9.mp3" expression="full" duration="2966" fileSize="23736752" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4/1/2/4/0/5/C9LecturesFPGrahamHuttonC11_ch9.mp4" expression="full" duration="2966" fileSize="269197788" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4/1/2/4/0/5/C9LecturesFPGrahamHuttonC11_ch9.wma" expression="full" duration="2966" fileSize="24006937" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/4/1/2/4/0/5/C9LecturesFPGrahamHuttonC11_ch9.wmv" expression="full" duration="2966" fileSize="401887057" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/4/1/2/4/0/5/C9LecturesFPGrahamHuttonC11_ch9.wmv" length="401887057" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>18</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Functional Programming</category>
      <category>Graham Hutton</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 10 of 13</title>
      <description><![CDATA[<p>In <strong>Chapter 10, Declaring Types and Classes</strong>, Dr. Meijer teaches us about type declarations, data declarations, arithmetic expressions, etc.&nbsp;&nbsp;In Haskell, a new name for an existing type can be defined using a<br><em>type declaration:<br></em><strong><br>type String = [Char]<br></strong><br>String is a synonym for the type [Char].<br><br>Like function definitions, type declarations can also have <em>parameters.</em> Type declarations can be nested, but<br><em>not</em> recursive.<br><br>Nested:<br><br><strong>type Pos&nbsp;&nbsp; = (Int,Int)</strong></p><p><strong>type Trans = Pos -&gt;&nbsp;Pos</strong><br><br>Illegal recursion:<br><br><strong>type Tree = (Int,[Tree])</strong><br><br>A completely new type can be defined by specifying its values using a <em>data declaration:<br><br></em><strong>data Bool = False | True</strong><br><br>Bool is a new type, with two new values False and True.<br><br>Get the presentation slides <a href="http://www.cs.nott.ac.uk/~gmh/book.html#slides" shape="rect" target="_blank"><strong>here</strong></a><br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:62fd6d156240415bbdf49dea0042b854">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13</comments>
      <itunes:summary>In Chapter 10, Declaring Types and Classes, Dr. Meijer teaches us about type declarations, data declarations, arithmetic expressions, etc.&amp;nbsp;&amp;nbsp;In Haskell, a new name for an existing type can be defined using atype declaration:type String = [Char]String is a synonym for the type [Char].Like function definitions, type declarations can also have parameters. Type declarations can be nested, butnot recursive.Nested:type Pos&amp;nbsp;&amp;nbsp; = (Int,Int) type Trans = Pos -&amp;gt;&amp;nbsp;PosIllegal recursion:type Tree = (Int,[Tree])A completely new type can be defined by specifying its values using a data declaration:data Bool = False | TrueBool is a new type, with two new values False and True.Get the presentation slides hereChapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 </itunes:summary>
      <itunes:duration>2707</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13</link>
      <pubDate>Tue, 08 Dec 2009 00:38:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/504213_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/504213_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/3/1/2/4/0/5/C9LecturesMeijerFPC10_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3/1/2/4/0/5/C9LecturesMeijerFPC10_2MB_ch9.wmv" expression="full" duration="2707" fileSize="1054212848" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3/1/2/4/0/5/C9LecturesMeijerFPC10_ch9.mp3" expression="full" duration="2707" fileSize="21658863" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3/1/2/4/0/5/C9LecturesMeijerFPC10_ch9.mp4" expression="full" duration="2707" fileSize="296525245" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3/1/2/4/0/5/C9LecturesMeijerFPC10_ch9.wma" expression="full" duration="2707" fileSize="21898129" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/3/1/2/4/0/5/C9LecturesMeijerFPC10_ch9.wmv" expression="full" duration="2707" fileSize="412907417" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/3/1/2/4/0/5/C9LecturesMeijerFPC10_ch9.wmv" length="412907417" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>8</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 9 of 13</title>
      <description><![CDATA[<p>In <strong>Chapter 9</strong>, <strong>Interactive Programs</strong>, Dr. Meijer will teach us how to make programs in Haskell that are side-effecting:<br><em>interactive</em>. Haskell programs are pure mathematical functions with no side effects. That said, you want to be able to write Haskell programs that can read input from the keyboard and write output to the screen which are in fact side effects. So, interactive programs have side effects... Interactive programs can be written in Haskell by using types to distinguish pure expressions from impure actions that may involve side effects.<br><br>Consider the following:<br><strong><br>IO a<br></strong><em>The type of actions that return values of type a</em></p><p><strong>IO Char<br></strong><em>The type of actions that return a character<br><br></em><strong>IO()<br></strong><em>The type of purely side effecting actions that return no result value|<br></em><br><strong>Warning</strong>: This lecture may contain the use of the term Monad. Do not fear. Everything will be OK. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /><br><br>You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):<br><br>Get the presentation slides <a href="http://www.cs.nott.ac.uk/~gmh/book.html#slides" shape="rect" target="_blank"><strong>here</strong></a><br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:4e9edd12d3fa49bfb1609dea0042bbaf">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13</comments>
      <itunes:summary>In Chapter 9, Interactive Programs, Dr. Meijer will teach us how to make programs in Haskell that are side-effecting:interactive. Haskell programs are pure mathematical functions with no side effects. That said, you want to be able to write Haskell programs that can read input from the keyboard and write output to the screen which are in fact side effects. So, interactive programs have side effects... Interactive programs can be written in Haskell by using types to distinguish pure expressions from impure actions that may involve side effects.Consider the following:IO aThe type of actions that return values of type a IO CharThe type of actions that return a characterIO()The type of purely side effecting actions that return no result value|Warning: This lecture may contain the use of the term Monad. Do not fear. Everything will be OK. You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):Get the presentation slides hereChapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 &amp;nbsp; </itunes:summary>
      <itunes:duration>2526</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13</link>
      <pubDate>Thu, 26 Nov 2009 18:48:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/504212_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/504212_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/2/1/2/4/0/5/C9LecturesMeijerFPC9_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/1/2/4/0/5/C9LecturesMeijerFPC9_2MB_ch9.wmv" expression="full" duration="2526" fileSize="983991934" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/1/2/4/0/5/C9LecturesMeijerFPC9_ch9.mp3" expression="full" duration="2526" fileSize="20216693" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/1/2/4/0/5/C9LecturesMeijerFPC9_ch9.mp4" expression="full" duration="2526" fileSize="297156602" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/1/2/4/0/5/C9LecturesMeijerFPC9_ch9.wma" expression="full" duration="2526" fileSize="20441183" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/2/1/2/4/0/5/C9LecturesMeijerFPC9_ch9.wmv" expression="full" duration="2526" fileSize="424904891" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/2/1/2/4/0/5/C9LecturesMeijerFPC9_ch9.wmv" length="424904891" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>44</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
      <description><![CDATA[<p>In <strong>Chapter 8</strong>, <strong>Functional Parsers</strong>, it's all about parsing and parsers. A parser is a program that analyses a piece of text to determine its syntactic structure. In a functional language such as Haskell, parsers can naturally<br>be viewed as functions.<br><br>&nbsp; type Parser = String&nbsp;-&gt; Tree<br><br>A parser is a function that takes a string and returns some form of tree.<br><br>You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):<br><br>Get the presentation slides <a href="http://www.cs.nott.ac.uk/~gmh/book.html#slides" shape="rect" target="_blank"><strong>here</strong></a><br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:53326470103b41aeb8259dea0042c200">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13</comments>
      <itunes:summary>In Chapter 8, Functional Parsers, it&#39;s all about parsing and parsers. A parser is a program that analyses a piece of text to determine its syntactic structure. In a functional language such as Haskell, parsers can naturallybe viewed as functions.&amp;nbsp; type Parser = String&amp;nbsp;-&amp;gt; TreeA parser is a function that takes a string and returns some form of tree.You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):Get the presentation slides hereChapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 &amp;nbsp; </itunes:summary>
      <itunes:duration>3287</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13</link>
      <pubDate>Thu, 19 Nov 2009 18:55:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/504211_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/504211_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_2MB_ch9.wmv" expression="full" duration="3287" fileSize="1280192037" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.mp3" expression="full" duration="3287" fileSize="26301343" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.mp4" expression="full" duration="3287" fileSize="435268814" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.wma" expression="full" duration="3287" fileSize="26593375" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.wmv" expression="full" duration="3287" fileSize="570803545" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/1/1/2/4/0/5/C9LecturesMeijerC8_ch9.wmv" length="570803545" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>22</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 7 of 13</title>
      <description><![CDATA[<p>In <strong>Chapter 7</strong>, Dr. Meijer teaches us about <strong>Higher-Order Functions</strong>. A function is called higher-order if it takes a function as an argument and returns a function as a result:<br><br>twice&nbsp;&nbsp;&nbsp;&nbsp;:: (a&nbsp;-&gt; a)&nbsp;-&gt; a -&gt; a<br>twice f x = f (f x)<br><br>The function twice above&nbsp;is higher order because it takes a function&nbsp;(f&nbsp;x) as it first argument and returns a function (f(fx))&nbsp;<br><br>Dr. Meijer will elaborate on why higher-order functions are important and there are some really interesting side-effects of higher-order functions such as defining DSLs as collections of higher-order functions and using algebraic properties of higher-order functions to reason about programs. <br><br>You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):<br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:f90618fee3ed45fd85ff9dea0042c651">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13</comments>
      <itunes:summary>In Chapter 7, Dr. Meijer teaches us about Higher-Order Functions. A function is called higher-order if it takes a function as an argument and returns a function as a result:twice&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:: (a&amp;nbsp;-&amp;gt; a)&amp;nbsp;-&amp;gt; a -&amp;gt; atwice f x = f (f x)The function twice above&amp;nbsp;is higher order because it takes a function&amp;nbsp;(f&amp;nbsp;x) as it first argument and returns a function (f(fx))&amp;nbsp;Dr. Meijer will elaborate on why higher-order functions are important and there are some really interesting side-effects of higher-order functions such as defining DSLs as collections of higher-order functions and using algebraic properties of higher-order functions to reason about programs. You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 </itunes:summary>
      <itunes:duration>2747</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13</link>
      <pubDate>Thu, 12 Nov 2009 16:42:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/504209_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/504209_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_2MB_ch9.wmv" expression="full" duration="2747" fileSize="1069934805" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.mp3" expression="full" duration="2747" fileSize="21983825" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.mp4" expression="full" duration="2747" fileSize="298495904" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.wma" expression="full" duration="2747" fileSize="22228569" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.wmv" expression="full" duration="2747" fileSize="387323991" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/4/0/5/C9LecturesMeijerFPC7_ch9.wmv" length="387323991" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>16</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 6 of 13</title>
      <description><![CDATA[<p>In <strong>Chapter 6</strong>, Dr. Meijer guides us through the world of&nbsp;<strong>recursive functions</strong>.&nbsp;In Haskell, functions can be defined <em>in terms of themselves</em>.&nbsp; Such functions are called recursive.</p><p>For example:&nbsp;<br><br>factorial 0&nbsp;= 1<br>factorial (n&#43;1) = (n&#43;1) * factorial n<br><br>factorial maps 0 to 1, and any other positive integer to the product of itself and the factorial of its predecessor.</p><p>Some functions, such as factorial, are simpler to define in terms of other functions. As we shall see, however, many functions can naturally be defined in terms of themselves.</p><p>Properties of functions defined using recursion can be proved using the simple but powerful mathematical technique of induction.<br><br>You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):<br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:7ccf23a9609f45b2ba0a9dea0042d2bb">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13</comments>
      <itunes:summary>In Chapter 6, Dr. Meijer guides us through the world of&amp;nbsp;recursive functions.&amp;nbsp;In Haskell, functions can be defined in terms of themselves.&amp;nbsp; Such functions are called recursive. For example:&amp;nbsp;factorial 0&amp;nbsp;= 1factorial (n&amp;#43;1) = (n&amp;#43;1) * factorial nfactorial maps 0 to 1, and any other positive integer to the product of itself and the factorial of its predecessor. Some functions, such as factorial, are simpler to define in terms of other functions. As we shall see, however, many functions can naturally be defined in terms of themselves. Properties of functions defined using recursion can be proved using the simple but powerful mathematical technique of induction.You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 </itunes:summary>
      <itunes:duration>2613</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13</link>
      <pubDate>Thu, 05 Nov 2009 15:53:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/499066_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/499066_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_2MB_ch9.wmv" expression="full" duration="2613" fileSize="1017554623" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.mp3" expression="full" duration="2613" fileSize="20908824" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.mp4" expression="full" duration="2613" fileSize="278662720" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.wma" expression="full" duration="2613" fileSize="21141115" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.wmv" expression="full" duration="2613" fileSize="382762109" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/6/0/9/9/4/C9LecturesErikMeijerFPC6_ch9.wmv" length="382762109" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>25</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 5 of 13</title>
      <description><![CDATA[<p>In <strong>Chapter 5</strong>, Dr. Meijer introduces and digs into <strong>List Comprehensions</strong>. In mathematics, comprehension notation is used to construct new sets from old sets. In Haskell, you can create new lists from old lists using a similar<br>comprehension syntax:<br><br>[x^2 | x &lt;- [1..5]]<br><br>The above notation represents the list [1,4,9,16,25] of all numbers x^2 such that x is an element of the list [1..5]. The &lt;- [1..5] syntax is known as a<br><strong>generator</strong> and list comprehensions can have mulitple generators that can have explicit dependencies on other generators. You will also learn about<br><strong>guards</strong>, which restrict values created by earlier generators.<br><br>You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):<br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:c72d1cee113d4089845a9dea0042d744">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13</comments>
      <itunes:summary>In Chapter 5, Dr. Meijer introduces and digs into List Comprehensions. In mathematics, comprehension notation is used to construct new sets from old sets. In Haskell, you can create new lists from old lists using a similarcomprehension syntax:[x^2 | x &amp;lt;- [1..5]]The above notation represents the list [1,4,9,16,25] of all numbers x^2 such that x is an element of the list [1..5]. The &amp;lt;- [1..5] syntax is known as agenerator and list comprehensions can have mulitple generators that can have explicit dependencies on other generators. You will also learn aboutguards, which restrict values created by earlier generators.You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 </itunes:summary>
      <itunes:duration>1916</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13</link>
      <pubDate>Thu, 29 Oct 2009 17:31:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/498918_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/498918_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_2MB_ch9.wmv" expression="full" duration="1916" fileSize="746286796" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.mp3" expression="full" duration="1916" fileSize="15334084" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.mp4" expression="full" duration="1916" fileSize="202842067" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.wma" expression="full" duration="1916" fileSize="15508615" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.wmv" expression="full" duration="1916" fileSize="285824351" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/8/1/9/8/9/4/C9LecturesMeijerFPC5_ch9.wmv" length="285824351" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>30</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 3 of 13</title>
      <description><![CDATA[<p>In <strong>Chapter 3</strong>, Dr. Meijer explores <strong>types and classes in Haskell</strong>. A type is a collection of related values and in Haskell every well-formed expression has a type. Using type inference, these types are automatically calculated at run time. If<br>expression e returns a type t, then e is of type t, e :: t. A function is a mapping of one type to another type and you will learn about new types of functions in this lecture, specifically curried functions: functions that return functions as a result (and<br>functions are values, remember) and polymorphic functions (function with a type that contains one or more type variables).<br><br>You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):<br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:86c52c218488457f977d9dea0042f84a">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13</comments>
      <itunes:summary>In Chapter 3, Dr. Meijer explores types and classes in Haskell. A type is a collection of related values and in Haskell every well-formed expression has a type. Using type inference, these types are automatically calculated at run time. Ifexpression e returns a type t, then e is of type t, e :: t. A function is a mapping of one type to another type and you will learn about new types of functions in this lecture, specifically curried functions: functions that return functions as a result (andfunctions are values, remember) and polymorphic functions (function with a type that contains one or more type variables).You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 &amp;nbsp; </itunes:summary>
      <itunes:duration>2610</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13</link>
      <pubDate>Thu, 15 Oct 2009 15:46:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/495716_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/495716_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_2MB_ch9.wmv" expression="full" duration="2610" fileSize="525368335" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.mp3" expression="full" duration="2610" fileSize="20886465" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.mp4" expression="full" duration="2610" fileSize="226808433" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.wma" expression="full" duration="2610" fileSize="21120093" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.wmv" expression="full" duration="2610" fileSize="322202073" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/6/1/7/5/9/4/C9LecturesMeijerFPC3_ch9.wmv" length="322202073" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>54</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 2 of 13</title>
      <description><![CDATA[<p>In <strong>Chapter 2</strong>, Dr. Meijer introduces Haskell syntax and notation&nbsp;(via a Haskell implementation called Hugs, to be precise, which is based on Haskell 98) and we learn about the Haskell syntax that represents the fundamental construct of functional programming:<br>functions. It's not like you're used to in mathematics&nbsp;like&nbsp;<em>f(x)</em>. Instead, in Haskell, a function is denoted without parentheses:<br><em>f x</em>. So, given the almost OCD requirement by Haskell language designers to eliminate<br><em>any</em> unnecessary clutter in the language, parentheses are replaced by space. Also, in mathematics, you're accustomed to multiplication expressed either as xy or x y. In Haskell, since space denotes a function, multiplication is denoted with a *, like<br>x*y...<br><br>You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):<br><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/" target="_blank"><strong>Chapter 1</strong></a> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> <br></strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank"><br>Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong> <br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong> <br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></strong></p><p>&nbsp;</p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:b6c7800f45744fb0bfa19dea00430658">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2</comments>
      <itunes:summary>In Chapter 2, Dr. Meijer introduces Haskell syntax and notation&amp;nbsp;(via a Haskell implementation called Hugs, to be precise, which is based on Haskell 98) and we learn about the Haskell syntax that represents the fundamental construct of functional programming:functions. It&#39;s not like you&#39;re used to in mathematics&amp;nbsp;like&amp;nbsp;f(x). Instead, in Haskell, a function is denoted without parentheses:f x. So, given the almost OCD requirement by Haskell language designers to eliminateany unnecessary clutter in the language, parentheses are replaced by space. Also, in mathematics, you&#39;re accustomed to multiplication expressed either as xy or x y. In Haskell, since space denotes a function, multiplication is denoted with a *, likex*y...You should watch these in sequence (or skip around depending on your curent level of knowledge in this domain):Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 &amp;nbsp; </itunes:summary>
      <itunes:duration>3061</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2</link>
      <pubDate>Thu, 08 Oct 2009 15:33:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/494398_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/494398_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_2MB_ch9.wmv" expression="full" duration="3061" fileSize="616708939" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.mp3" expression="full" duration="3061" fileSize="24489482" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.mp4" expression="full" duration="3061" fileSize="322302235" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.wma" expression="full" duration="3061" fileSize="24757937" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.wmv" expression="full" duration="3061" fileSize="443120373" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/8/9/3/4/9/4/C9LecturesMeijerFPC2_ch9.wmv" length="443120373" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>61</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
    </item>
  <item>
      <title>C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 1 of 13</title>
      <description><![CDATA[<p>Welcome to&nbsp;a new technical series on Channel 9 folded into a different kind of 9 format: <em><strong>C9 Lectures</strong>. </em>These are what you think they are, lectures. They are not conversational in nature (like most of what you're used to on 9), but rather&nbsp;these pieces are entirely focused on education, coming to you in the form of a series of high quality technical lectures (1 or more per topic)&nbsp;on a single topic.<br><br>We kick off C9 Lectures with a journey into the world of Functional Programming with functional language purist and&nbsp;high priest of the lambda calculus,&nbsp;Dr.&nbsp;<a href="http://research.microsoft.com/~emeijer/" shape="rect" target="_blank">Erik Meijer</a>&nbsp;(you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders).&nbsp;<br><br><strong>Lecture Context</strong>:<br><br>Over the past two years, you've learned a fair amount about the functional programming paradigm's foray into general purpose imperative progamming languages (LINQ, Lambda's, etc in C# and VB.NET). And, of course, the newest&nbsp;language&nbsp;to join the&nbsp;Visual Studio&nbsp;family of languages, F#, <em>is</em> a functional language.&nbsp;You've heard us say how important functional language constructs are to the our current languages'&nbsp;capabilities to evolve in the right direction to meet the needs of the many-core future (the need for reliable and comprehensible&nbsp;concurrency, parallelism, etc) and,<em> most importantly</em>, to help vault computer programming into an age of compositionality (remember our talks on 9 regarding composability and evolution of software engineering as an engineering discipline?). Well, we decided to take a step back and teach you the <em>fundamentals</em> of functional programming at a level equivalent to any university. We even have a text book and professor who will expand our minds.<br><br>Dr. Erik Meijer&nbsp;will teach us Functional Programming Fundamentals using Haskell as the language for understanding the basic functional principles (in fact, the specific language isn't all that important, but Haskell is a pure functional language so it is entirely appropriate for learning the essential ingredients of functional programming. It is also a relatively small language and should be easy for you to get up to speed with Haskell once you understand the Why, What and How that underlies all functional languages...).</p><p>In Chapter 1, Dr. Meijer takes us through the fundamental fundamentals of functional programming: The philosophy and history of functional programming. As you can imagine, these lectures will go deeper and deeper as the chapters progress, but you need to understand the philosophical and historical contexts. This will provide a nice layer of fresh conceptual soil in which to plant the seeds of understanding the technical details of functional programming, of functional reasoning.<br><br>Welcome to C9 Lectures. Enjoy and learn, learn, learn.<br><br><strong>ALWAYS</strong> ask questions right here. Erik will answer them. Remember, he is professor Erik Meijer in this context and professors answer the questions of their students. Thank you, Erik, for doing this!<br><br>Welcome to C9 Lectures!<br><br>See the rest of this great series:</p><p><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2/" shape="rect" target="_blank">Chapter 2</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-3-of-13/" shape="rect" target="_blank">Chapter 3</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-4-of-13/" shape="rect" target="_blank">Chapter 4</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-5-of-13/" shape="rect" target="_blank">Chapter 5</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-6-of-13/" shape="rect" target="_blank">Chapter 6</a> </strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-7-of-13/" shape="rect" target="_blank">Chapter 7</a></strong><br><strong><a href="http://channel9.msdn.com/shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13/" shape="rect" target="_self">Chapter 8</a></strong><br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-9-of-13" target="_blank">Chapter 9</a></strong><br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-10-of-13" target="_blank">Chapter 10</a></strong><br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13" target="_blank">Chapter 11</a></strong><br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-12-of-13" target="_blank">Chapter 12</a></strong><br><strong><a href="http://channel9.msdn.com/Shows/Going&#43;Deep/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-13-of-13" target="_blank">Chapter 13</a></strong></p> <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:583cf85c5d9b422d99d19dea00430e6d">]]></description>
      <comments>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1</comments>
      <itunes:summary>Welcome to&amp;nbsp;a new technical series on Channel 9 folded into a different kind of 9 format: C9 Lectures. These are what you think they are, lectures. They are not conversational in nature (like most of what you&#39;re used to on 9), but rather&amp;nbsp;these pieces are entirely focused on education, coming to you in the form of a series of high quality technical lectures (1 or more per topic)&amp;nbsp;on a single topic.We kick off C9 Lectures with a journey into the world of Functional Programming with functional language purist and&amp;nbsp;high priest of the lambda calculus,&amp;nbsp;Dr.&amp;nbsp;Erik Meijer&amp;nbsp;(you can thank Erik for many of the functional constructs that have shown up in languages like C# and VB.NET. When you use LINQ, thank Erik in addition to Anders).&amp;nbsp;Lecture Context:Over the past two years, you&#39;ve learned a fair amount about the functional programming paradigm&#39;s foray into general purpose imperative progamming languages (LINQ, Lambda&#39;s, etc in C# and VB.NET). And, of course, the newest&amp;nbsp;language&amp;nbsp;to join the&amp;nbsp;Visual Studio&amp;nbsp;family of languages, F#, is a functional language.&amp;nbsp;You&#39;ve heard us say how important functional language constructs are to the our current languages&#39;&amp;nbsp;capabilities to evolve in the right direction to meet the needs of the many-core future (the need for reliable and comprehensible&amp;nbsp;concurrency, parallelism, etc) and, most importantly, to help vault computer programming into an age of compositionality (remember our talks on 9 regarding composability and evolution of software engineering as an engineering discipline?). Well, we decided to take a step back and teach you the fundamentals of functional programming at a level equivalent to any university. We even have a text book and professor who will expand our minds.Dr. Erik Meijer&amp;nbsp;will teach us Functional Programming Fundamentals using Haskell as the language for understanding the basic functional principles (in fact, the specific language isn&#39;t all that im</itunes:summary>
      <itunes:duration>1897</itunes:duration>
      <link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1</link>
      <pubDate>Thu, 01 Oct 2009 15:50:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/494397_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/494397_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_512_ch9.png" height="384" width="512"></media:thumbnail>
      <media:group>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_2MB_ch9.wmv" expression="full" duration="1897" fileSize="381931312" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.mp3" expression="full" duration="1897" fileSize="15180681" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.mp4" expression="full" duration="1897" fileSize="230905860" type="video/mp4" medium="video"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.wma" expression="full" duration="1897" fileSize="15349403" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.wmv" expression="full" duration="1897" fileSize="316768137" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://ecn.channel9.msdn.com/o9/ch9/7/9/3/4/9/4/C9LecturesMeijerFunctionalChapter1_ch9.wmv" length="316768137" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>89</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/RSS</wfw:commentRss>
      <category>C9 Lectures</category>
      <category>Erik Meijer</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Programming Languages</category>
    </item>
  <item>
      <title>Parallel Performance Tuning for Haskell</title>
      <description><![CDATA[
<p><a shape="rect" href="http://research.microsoft.com/apps/pubs/default.aspx?id=80976" target="_blank" shape="rect">Very interesting work</a>&nbsp;with implications for integration into more mainstream runtimes... In general, runtime support for parallel tuning
 is necessary going forward. The Many Core age has only just begun... This paper is a great read.<br /><br /><em>Parallel Haskell programming has entered the mainstream with support now included in GHC for multiple parallel programming models, along with multicore execution support in the runtime. However, tuning programs for parallelism is still something of a black
 art. Without much in the way of feedback provided by the runtime system, it is a matter of trial and error combined with experience to achieve good parallel speedups.</em>
</p>
<p><em></em></p>
<p><em>This paper describes an early prototype of a parallel profiling system for multicore programming with GHC. The system comprises three parts: fast event tracing in the runtime, a Haskell library for reading the resulting trace files, and a number of tools
 built on this library for presenting the information to the programmer. We focus on one tool in particular, a graphical timeline browser called ThreadScope.</em></p>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:20e700fc090d4ac8994b9dea00ca6396">]]></description>
      <comments>http://channel9.msdn.com/Blogs/Charles/Parallel-Performance-Tuning-for-Haskell</comments>
      <itunes:summary>
Very interesting work&amp;nbsp;with implications for integration into more mainstream runtimes... In general, runtime support for parallel tuning
 is necessary going forward. The Many Core age has only just begun... This paper is a great read.Parallel Haskell programming has entered the mainstream with support now included in GHC for multiple parallel programming models, along with multicore execution support in the runtime. However, tuning programs for parallelism is still something of a black
 art. Without much in the way of feedback provided by the runtime system, it is a matter of trial and error combined with experience to achieve good parallel speedups.
 
 
This paper describes an early prototype of a parallel profiling system for multicore programming with GHC. The system comprises three parts: fast event tracing in the runtime, a Haskell library for reading the resulting trace files, and a number of tools
 built on this library for presenting the information to the programmer. We focus on one tool in particular, a graphical timeline browser called ThreadScope. 
</itunes:summary>
      <link>http://channel9.msdn.com/Blogs/Charles/Parallel-Performance-Tuning-for-Haskell</link>
      <pubDate>Sat, 12 Sep 2009 19:30:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Blogs/Charles/Parallel-Performance-Tuning-for-Haskell</guid>      
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>5</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Blogs/Charles/Parallel-Performance-Tuning-for-Haskell/RSS</wfw:commentRss>
      <category>Concurrency</category>
      <category>Haskell</category>
      <category>Parallel Computing</category>
      <category>Parallelism</category>
      <category>Programming</category>
    </item>
  <item>
      <title>Erik Meijer and Matthew Podwysocki - Perspectives on Functional Programming</title>
      <description><![CDATA[<a href="http://codebetter.com/blogs/matthew.podwysocki/default.aspx" target="_blank">Matthew Podwysocki</a>&nbsp;is a senior consultant for Microsoft platform technologies in the D.C. area. He's been programming since he was a child and has a
<a href="http://codebetter.com/blogs/matthew.podwysocki/default.aspx" target="_blank">
particular interest and passion for functional programming</a>. <a href="http://channel9.msdn.com/tags/functional&#43;programming" target="_blank">
Functional programming</a> is all the rage these days. General purpose imperative languages (like C# and C&#43;&#43;)&nbsp;are adding functional constructs to help improve software developer prodcutivity in an increasingly concurrent general purpose computing environment
 as notebooks and&nbsp;PCs with&nbsp;multiple processors are now the norm.<br /><br />Matthew was in Redmond a few weeks ago, so we thought it would be awesome to invite Matthew into the the lair of our resident functional programming extremist (though I must say that Erik is mellowing out with age), high priest of the lamda calculus, category
 theorist and Expert to Expert host, <a href="http://research.microsoft.com/~emeijer" target="_blank">
Erik Meijer</a>. Now, it's a little scary to be asked into Erik's den of functional orthodoxy (aka Erik's&nbsp;office)&nbsp;and be put to the task of explaining functional principals in a&nbsp;way that is widely&nbsp;accessible to developers who have little or no experience with
<em>thinking</em> <em>functional</em>, but Matthew was up for the task and spends most of the time at Erik's whiteboard explaining important functional programming concepts (Haskell and F#&nbsp;are the languages used in the examples, but the language isn't that
 important - the <em>concepts</em> are), sharing some his very interesting history with us, waxing on future directions in programming, engaging&nbsp;us in a really interesting conversation. Great job, Matthew!
<br /><br />Enjoy! <br /><br />Duration:&nbsp;1:07:41  <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Tags/haskell/RSS&WT.dl=0&WT.entryid=Entry:RSSView:735b32d22c034afc9ed79dea0043865d">]]></description>
      <comments>http://channel9.msdn.com/Shows/Going+Deep/Erik-Meijer-and-Matthew-Podwysocki-Perspectives-on-Functional-Programming</comments>
      <itunes:summary>Matthew Podwysocki&amp;nbsp;is a senior consultant for Microsoft platform technologies in the D.C. area. He&#39;s been programming since he was a child and has a

particular interest and passion for functional programming. 
Functional programming is all the rage these days. General purpose imperative languages (like C# and C&amp;#43;&amp;#43;)&amp;nbsp;are adding functional constructs to help improve software developer prodcutivity in an increasingly concurrent general purpose computing environment
 as notebooks and&amp;nbsp;PCs with&amp;nbsp;multiple processors are now the norm.Matthew was in Redmond a few weeks ago, so we thought it would be awesome to invite Matthew into the the lair of our resident functional programming extremist (though I must say that Erik is mellowing out with age), high priest of the lamda calculus, category
 theorist and Expert to Expert host, 
Erik Meijer. Now, it&#39;s a little scary to be asked into Erik&#39;s den of functional orthodoxy (aka Erik&#39;s&amp;nbsp;office)&amp;nbsp;and be put to the task of explaining functional principals in a&amp;nbsp;way that is widely&amp;nbsp;accessible to developers who have little or no experience with
thinking functional, but Matthew was up for the task and spends most of the time at Erik&#39;s whiteboard explaining important functional programming concepts (Haskell and F#&amp;nbsp;are the languages used in the examples, but the language isn&#39;t that
 important - the concepts are), sharing some his very interesting history with us, waxing on future directions in programming, engaging&amp;nbsp;us in a really interesting conversation. Great job, Matthew!
Enjoy! Duration:&amp;nbsp;1:07:41 </itunes:summary>
      <itunes:duration>4061</itunes:duration>
      <link>http://channel9.msdn.com/Shows/Going+Deep/Erik-Meijer-and-Matthew-Podwysocki-Perspectives-on-Functional-Programming</link>
      <pubDate>Tue, 24 Mar 2009 15:50:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/Shows/Going+Deep/Erik-Meijer-and-Matthew-Podwysocki-Perspectives-on-Functional-Programming</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/100/459551_100x75.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/previewImages/220/459551_220x165.jpg" height="165" width="220"></media:thumbnail>
      <media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysockiFP_large_ch9.png" height="240" width="320"></media:thumbnail>
      <media:thumbnail url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysockiFP_small_ch9.png" height="64" width="85"></media:thumbnail>
      <media:group>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysocki.m4v" expression="full" duration="4061" fileSize="244048767" type="video/mp4" medium="video"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysocki.mp3" expression="full" duration="4061" fileSize="81227265" type="audio/mp3" medium="audio"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysockiFP_2MB_ch9.wmv" expression="full" duration="4061" fileSize="1271038311" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysockiFP_ch9.wma" expression="full" duration="4061" fileSize="65696459" type="audio/x-ms-wma" medium="audio"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysockiFP_ch9.wmv" expression="full" duration="4061" fileSize="246109807" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysockiFP_Zune_ch9.wmv" expression="full" duration="4061" fileSize="321629787" type="video/x-ms-wmv" medium="video"></media:content>
        <media:content url="mms://mschnlnine.wmod.llnwd.net/a1809/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysockiFP_s_ch9.wmv" expression="full" duration="4061" fileSize="224" type="video/x-ms-wmv" medium="video"></media:content>
      </media:group>      
      <enclosure url="http://mschnlnine.vo.llnwd.net/d1/ch9/1/5/5/9/5/4/E2EMatthewPodwysockiFP_ch9.wmv" length="246109807" type="video/x-ms-wmv"></enclosure>
      <dc:creator>Charles</dc:creator>
      <itunes:author>Charles</itunes:author>
      <slash:comments>22</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/Shows/Going+Deep/Erik-Meijer-and-Matthew-Podwysocki-Perspectives-on-Functional-Programming/RSS</wfw:commentRss>
      <category>Erik Meijer</category>
      <category>Expert to Expert</category>
      <category>F#</category>
      <category>Functional Programming</category>
      <category>Haskell</category>
      <category>Matthew Podwysocki</category>
      <category>Programming</category>
      <category>Programming Languages</category>
    </item>    
</channel>
</rss>