<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
	<atom:link rel="self" type="application/rss+xml" href="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"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/previewImages/100/504211_100x75.jpg</url>
		<title>Channel 9 - C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<link></link>
	</image>
	<description>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; </description>
	<link></link>
	<language>en</language>
	<pubDate>Sat, 25 May 2013 00:30:51 GMT</pubDate>
	<lastBuildDate>Sat, 25 May 2013 00:30:51 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>Very nice shirt <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>posted by lucjansz</p>]]>
		</description>
		<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#c633942582620000000</link>
		<pubDate>Thu, 19 Nov 2009 20:11:02 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633942582620000000</guid>
		<dc:creator>lucjansz</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>Hope you get the time to do an introduction on QuickCheck. This is one of the things in Haskell that seems the most interesting to me, and I think it is a pretty unique to functional programming languages, if I understand it correctly.</p>
<p>posted by AliPang</p>]]>
		</description>
		<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#c633942775970000000</link>
		<pubDate>Fri, 20 Nov 2009 01:33:17 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633942775970000000</guid>
		<dc:creator>AliPang</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>Excelent lecture as always. Keep up the good work. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>&nbsp;</p>
<p>In the book Hutton didn't explain why he chose List instead of the Maybe type. I'm glad you touch that subject in the lecture.</p>
<p>posted by paks8150</p>]]>
		</description>
		<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#c633942825360000000</link>
		<pubDate>Fri, 20 Nov 2009 02:55:36 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633942825360000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>Erik, could you make the generalization offered by lists over optional types more statically correct with dependent typing? Saying that Maybe is just a list of zero or one element?</p>
<p>&nbsp;</p>
<p>In the ideal world we want to have lists as a generalization of Maybe but we don't want to loose the type safety that Maybe offers.</p>
<p>&nbsp;</p>
<p>This problem is complete Deja Vu for me: I encountered the same tension between the option type and the list type in an attempt to implement a lazy functional L-system
<a href="http://lib.haxe.org/p/Lsys">library</a> in <a href="http://haxe.org/">haXe</a>&nbsp;back in 2007.</p>
<p>&nbsp;</p>
<p>Thanks for the &quot;epic fail&quot; parser, haha.</p>
<p>&nbsp;</p>
<p>Deja Vu again! Brian Beckman repeated this so many times it was burned into my memory: the state monad is a function from state to state contents pair. This looks exactly as what we see here: you start with a string and get back a string
<em>and</em> a tree.</p>
<p>&nbsp;</p>
<p>Erik, why do you not like the layout rule in this case and use explicit delineation. I don't think you mention this.</p>
<p>&nbsp;</p>
<p>This whole parsing business is reminiscent of unfolding. Expansion of some input into a more complex form. Composition, application and unfolding, hmm...</p>
<p>posted by exoteric</p>]]>
		</description>
		<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#c633942826040000000</link>
		<pubDate>Fri, 20 Nov 2009 02:56:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633942826040000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>While parser combinators can be expressed functionally on .NET, even in C#, after having written a few such combinator libraries I've found that
<a href="http://higherlogics.blogspot.com/2009/11/extensible-statically-typed-pratt.html">
Pratt parsers</a> strike a better balance between simplicity and performance on the CLR. Pratt parsers also naturally handle operator precedence, while parser combinator libraries require more complicated structures to express these relationships. The extensible
 parser in the above link will be available in an upcoming release of my open source Sasa class library, so check it out if you're interested in this domain.</p>
<p>posted by naasking</p>]]>
		</description>
		<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#c633942895640000000</link>
		<pubDate>Fri, 20 Nov 2009 04:52:44 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633942895640000000</guid>
		<dc:creator>naasking</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>I've seen your blog before naasking and will check this out, thanks!</p>
<p>posted by exoteric</p>]]>
		</description>
		<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#c633943301120000000</link>
		<pubDate>Fri, 20 Nov 2009 16:08:32 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633943301120000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>Excellent as always, Erik.</p>
<p>&nbsp;</p>
<p>Perhaps like exoteric, I felt a little dissatisfied with the return type of Parser being &quot;list of...&quot; rather than &quot;Maybe...&quot;. I've come to admire the expressive power of Haskell types and this seems like a bit of a hack. Considering, as you pointed out,&nbsp;that
 both the list and Maybe types comprise Monads, I am wondering where the advantage exists for using the list type. Monads allow for map, filter, lift operations, no?</p>
<p>posted by dpratt71</p>]]>
		</description>
		<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#c633943517720000000</link>
		<pubDate>Fri, 20 Nov 2009 22:09:32 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633943517720000000</guid>
		<dc:creator>dpratt71</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>The list type is generally used for parser combinators to return multiple possible parses.</p>
<p>&nbsp;</p>
<p>I don't own Hutton's book, but I can think of a few reasons for not using Maybe. It would require introducing a new datatype to the reader, while the reader is already familiar with the list type. Also, it takes more characters to write when pattern matching
 on a Maybe value <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif' alt='Tongue Out' />.</p>
<p>&nbsp;</p>
<p>Now, in a real project you'd use the appropiate data type. If you know that at most only a&nbsp;single answer will be produced, use Maybe.</p>
<p>posted by ShinNoNoir</p>]]>
		</description>
		<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#c633943978170000000</link>
		<pubDate>Sat, 21 Nov 2009 10:56:57 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633943978170000000</guid>
		<dc:creator>ShinNoNoir</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>In general, this tension between structural abstraction and type-safety is conceptually dissatisfying.</p>
<p>&nbsp;</p>
<p>There must be a way to use the same list abstraction, only constrained to apply to [n,m] elements. Such value-restrictions upheld by a type system appear to be what dependent typing does. This provides a new expressive dimension which is missing in order
 to type programs correctly without also loosing the abstraction provided by lists over options. The ideal must be a way to fluently move from intensional to extensional semantics by explicitly coercing a type into the extensional domain of structural compatibility.</p>
<p>&nbsp;</p>
<p>It also reminds me of template metaprogramming. Someone built a compile-time regexp module in D and there's also a compile-time raytracer in D. In the last case you may discuss the applicability of that but at least it shows the expressive power.</p>
<p>&nbsp;</p>
<p><a href="http://www.digitalmars.com/d/2.0/templates-revisited.html">http://www.digitalmars.com/d/2.0/templates-revisited.html</a></p>
<p>&nbsp;</p>
<p>Now time to play with parsers in C# using LINQ...</p>
<p>posted by exoteric</p>]]>
		</description>
		<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#c633943999280000000</link>
		<pubDate>Sat, 21 Nov 2009 11:32:08 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633943999280000000</guid>
		<dc:creator>exoteric</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>I'm mystified by Erik's comment that the inserting calls to parse &quot;makes the type conversion explicit&quot;.</p>
<p>&nbsp;</p>
<p>I can certainly see that: </p>
<p>parse p &quot;something&quot; </p>
<p>is preferable to </p>
<p>p &quot;something&quot;</p>
<p>&nbsp;</p>
<p>However, to me it seems that it makes semantics exlicit rather than type conversion.</p>
<p>&nbsp;</p>
<p>Erik hardly seems more likely to be confused here than I am, so I think I'm missing some fundamental alternative way of viewing this.
</p>
<p>&nbsp;</p>
<p>As I'm writing this I think I'm starting to get it. Using parse makes it explicit that p is a parser. Since applying a parser to a value always returns a value with a type that has the same relationship to the input value's type, using parse makes both the
 semantics and the type conversions explicit.</p>
<p>&nbsp;</p>
<p>Am I understanding this correctly?</p>
<p>If not, I'd appreciate it if someone could expand upon Erik's statements.</p>
<p>posted by Magnus Lidbom</p>]]>
		</description>
		<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#c633944843000000000</link>
		<pubDate>Sun, 22 Nov 2009 10:58:20 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633944843000000000</guid>
		<dc:creator>Magnus Lidbom</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>The balance between too little and too much typing is subtle. &nbsp;You can goo all the way and have your types be a very precise specification of your code&nbsp;<a href="http://www.cs.chalmers.se/~bengt/talks/tt-snu.pdf">http://www.cs.chalmers.se/~bengt/talks/tt-snu.pdf</a>&nbsp;or
 have no static types at all. I think Hindley-Milner is a good compromise, although I think something like Cayenne
<a href="http://www.cs.chalmers.se/~augustss/cayenne/">http://www.cs.chalmers.se/~augustss/cayenne/</a>&nbsp;should work in practice as well.</p>
<p>posted by head.in.the.box</p>]]>
		</description>
		<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#c633947117150000000</link>
		<pubDate>Wed, 25 Nov 2009 02:08:35 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633947117150000000</guid>
		<dc:creator>head.in.the.box</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>Hello, I've tried the following code with Hugs:</p>
<p>&nbsp;</p>
<p>type Parser a = String -&gt; [(a,String)]</p>
<p>&nbsp;</p>
<p>item :: Parser Char<br />item = \inp -&gt; case inp of<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; []&nbsp;&nbsp;&nbsp;&nbsp; -&gt; []<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (x:xs) -&gt; [(x,xs)]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />return' :: a -&gt; Parser a<br />return' v = \inp -&gt; [(v,inp)]</p>
<p>&nbsp;</p>
<p>p' :: Parser (Char,Char)<br />p' = do x &lt;- item<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z &lt;- item<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y &lt;- item<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return' (x,y)</p>
<p>&nbsp;</p>
<p>It gives the following error:</p>
<p>&nbsp;</p>
<p><font size="2" color="#008700"><font size="2" color="#008700"></p>
<p>Prelude&gt; </p>
</font></font><font size="2">p' &quot;12345&quot;</font><font size="2" color="#af0000"><font size="2" color="#af0000">
<p>ERROR file:{Hugs}\packages\hugsbase\Hugs.hs:94 - Type error in explicitly typed binding</p>
<p>*** Term : p'</p>
<p>*** Type : [Char] -&gt; [(([(Char,[Char])],[(Char,[Char])]),[Char])]</p>
<p>*** Does not match : Parser (Char,Char)</p>
<p>&nbsp;</p>
<p>Does anyone had this problem? Thanks in advance for any help.</p>
</font></font>
<p></p>
<p>posted by leomm</p>]]>
		</description>
		<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#c633947172040000000</link>
		<pubDate>Wed, 25 Nov 2009 03:40:04 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633947172040000000</guid>
		<dc:creator>leomm</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>I must be going blind, but I can't seem to find the slides anywhere. &nbsp;Also, did anyone manage to collect all the links Erik pointed-to/talked-about at the beginning of the presentation?</p>
<p>posted by zurk</p>]]>
		</description>
		<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#c633947582340000000</link>
		<pubDate>Wed, 25 Nov 2009 15:03:54 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633947582340000000</guid>
		<dc:creator>zurk</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>I also couldn't find the slides.</p>
<p>&nbsp;</p>
<p>One of the links is this: <a href="http://www.comlab.ox.ac.uk/people/Richard.Bird/index.html">
http://www.comlab.ox.ac.uk/people/Richard.Bird/index.html</a></p>
<p>&nbsp;</p>
<p>Another one is this: <a href="http://portal.acm.org/portal.cfm?coll=GUIDE&amp;dl=GUIDE&amp;CFID=63594272&amp;CFTOKEN=61762843">
http://portal.acm.org/portal.cfm?coll=GUIDE&amp;dl=GUIDE&amp;CFID=63594272&amp;CFTOKEN=61762843</a></p>
<p>&nbsp;</p>
<p>Regards</p>
<p>posted by leomm</p>]]>
		</description>
		<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#c633947988640000000</link>
		<pubDate>Thu, 26 Nov 2009 02:21:04 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633947988640000000</guid>
		<dc:creator>leomm</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>Slides for the series: <a href="http://www.cs.nott.ac.uk/~gmh/book.html#slides">
http://www.cs.nott.ac.uk/~gmh/book.html#slides</a></p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<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#c633948028030000000</link>
		<pubDate>Thu, 26 Nov 2009 03:26:43 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633948028030000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>Thank you Charles. The source code, available&nbsp;at the same link,&nbsp;is great. Now I understand why my code wasn´t running.</p>
<p>&nbsp;</p>
<p>Regards</p>
<p>posted by leomm</p>]]>
		</description>
		<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#c633948550130000000</link>
		<pubDate>Thu, 26 Nov 2009 17:56:53 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633948550130000000</guid>
		<dc:creator>leomm</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>homework:</p>
<p>&nbsp;</p>
<p>2) Extend the parser for arithmetic expressions to support substraction and<br />&nbsp;&nbsp; division, based upon the following extensions to the grammar:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expr ::= term (&#43; expr | - expr | e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; term ::= factor (* term | / term | e)</p>
<p><pre class="brush: text">expr' :: Parser Int expr' = do t &lt;- term' do symbol &quot;&#43;&quot; e &lt;- expr' return (t &#43; e) &#43;&#43;&#43; do symbol &quot;-&quot; e &lt;- expr' return (t - e) &#43;&#43;&#43; return t term' :: Parser Int term' = do f &lt;- factor' do symbol &quot;*&quot; t &lt;- term' return (f * t) &#43;&#43;&#43; do symbol
 &quot;/&quot; e &lt;- expr' return (f `div` e) &#43;&#43;&#43; return f factor' :: Parser Int factor' = do symbol &quot;(&quot; e &lt;- expr' symbol &quot;)&quot; return e &#43;&#43;&#43; natural eval' :: String -&gt; Int eval' xs = case parse expr' xs of [(n,[])] -&gt; n [(_,out)] -&gt; error (&quot;unused input &quot; &#43;&#43; out) [] -&gt;
 error &quot;invalid input&quot; </pre></p>
<p>posted by paks8150</p>]]>
		</description>
		<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#c633951908340000000</link>
		<pubDate>Mon, 30 Nov 2009 15:13:54 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633951908340000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>I'm getting the same error from my code. How did you fix your code?</p>
<p>posted by rehaskell9</p>]]>
		</description>
		<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#c633991606450000000</link>
		<pubDate>Fri, 15 Jan 2010 13:57:25 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c633991606450000000</guid>
		<dc:creator>rehaskell9</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>I cannot find a Gilat Braga's blog (I am not sure if I write it correct)... Can anyone help me?</p>
<p>posted by siryc</p>]]>
		</description>
		<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#c634168730550000000</link>
		<pubDate>Sun, 08 Aug 2010 14:04:15 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c634168730550000000</guid>
		<dc:creator>siryc</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[
<p>Hi,</p>
<p>&nbsp;</p>
<p>His name is Gilad Bracha. His blog is <a href="http://gbracha.blogspot.com/">http://gbracha.blogspot.com/</a>&nbsp;</p>
<p>&nbsp;</p>
<p>You can also watch him on C9: <a href="http://channel9.msdn.com/tags/Gilad&#43;Bracha">
http://channel9.msdn.com/tags/Gilad&#43;Bracha</a></p>
<p>&nbsp;</p>
<p>C</p>
<p>posted by Charles</p>]]>
		</description>
		<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#c634168909730000000</link>
		<pubDate>Sun, 08 Aug 2010 19:02:53 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c634168909730000000</guid>
		<dc:creator>Charles</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[The second Paper is "The Genuine sieve of Eratosthenes" by Melissa O'Neill<br />http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf<p>posted by Sachin</p>]]>
		</description>
		<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#c634208433270000000</link>
		<pubDate>Thu, 23 Sep 2010 12:55:27 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c634208433270000000</guid>
		<dc:creator>Sachin</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 8 of 13</title>
		<description>
			<![CDATA[I do not agree with most as far as this one presentation goes... I really appreciated all the other ones but here...<br />I lost you or you lost me or you lost it... whichever.<p>posted by David</p>]]>
		</description>
		<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#c634286685550000000</link>
		<pubDate>Thu, 23 Dec 2010 02:35:55 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-8-of-13#c634286685550000000</guid>
		<dc:creator>David</dc:creator>
	</item>
</channel>
</rss>