<?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 paks8150</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Niners/paks8150/Comments/RSS"></atom:link>
	<image>
		<url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
		<title>paks8150</title>
		<link></link>
	</image>
	<description></description>
	<link></link>
	<language>en</language>
	<pubDate>Wed, 22 May 2013 18:51:52 GMT</pubDate>
	<lastBuildDate>Wed, 22 May 2013 18:51:52 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 13 of 13</title>
		<description>
			<![CDATA[
<p>Erik,</p>
<p>&nbsp;</p>
<p>It would be great if you can mention all the other books that you recomended during the series.&nbsp; To Mock a Mockingbird was an excelent sugestion. Specially seeing how combinator that seem so abstract in the book can be used for equational reasoning. Thank
 for that suggestion.</p>
<p>&nbsp;</p>
<p>Here is the link: <a href="http://www.amazon.com/gp/product/0394534913/ref=oss_product">http&#58;&#47;&#47;www.amazon.com&#47;gp&#47;product&#47;0394534913&#47;ref&#61;oss_product</a></p>
<p>&nbsp;</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-13-of-13#c634010057790000000</link>
		<pubDate>Fri, 05 Feb 2010 22:29:39 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-13-of-13#c634010057790000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 12 of 13</title>
		<description>
			<![CDATA[
<p>While these lectures are coming to an end we can all look forward to the C9 letures on F#. Charles any idea when that's comming?</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-12-of-13#c633967557020000000</link>
		<pubDate>Fri, 18 Dec 2009 17:55: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-12-of-13#c633967557020000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 12 of 13</title>
		<description>
			<![CDATA[
<p>It has been a great journey learning about functional programming in Haskell. To bad I’m going to be out of the country (no internet) for the last lecture <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-6.gif' alt='Sad' /></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-12-of-13#c633966726710000000</link>
		<pubDate>Thu, 17 Dec 2009 18:51:11 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-12-of-13#c633966726710000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Graham Hutton - Functional Programming Fundamentals Chapter 11 of 13</title>
		<description>
			<![CDATA[
<p>Just when I thought that this series couldn’t get better. Thanks Erick and Charles for putting so much effort into these lectures. Also, thanks to Dr. Hutton for taking the time to enlighten all of us. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>posted by paks8150</p>]]>
		</description>
		<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#c633960678940000000</link>
		<pubDate>Thu, 10 Dec 2009 18:51:34 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/C9-Lectures-Dr-Graham-Hutton-Functional-Programming-Fundamentals-Chapter-11-of-13#c633960678940000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Brian Beckman - Covariance and Contravariance in Physics 1 of 1</title>
		<description>
			<![CDATA[
<p>Thanks for this wonderful lecture.</p>
<p>&nbsp;</p>
<p>As a side effect&nbsp; <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' /> , the lecture and the paper gave me a good enough refresher on derivatives that I was able to solve project Euler’s problem 262. <a href="http://projecteuler.net/index.php?section=problems&amp;id=262">http&#58;&#47;&#47;projecteuler.net&#47;index.php&#63;section&#61;problems&#38;id&#61;262</a></p>
<p>&nbsp;</p>
<p>posted by paks8150</p>]]>
		</description>
		<link>http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Brian-Beckman-Covariance-and-Contravariance-in-Physics-1-of-1#c633958170030000000</link>
		<pubDate>Mon, 07 Dec 2009 21:10:03 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Shows/Going+Deep/C9-Lectures-Brian-Beckman-Covariance-and-Contravariance-in-Physics-1-of-1#c633958170030000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 10 of 13</title>
		<description>
			<![CDATA[
<p>These lectures have been the highlight of my Thursdays. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> . &nbsp;Thanks for taking the time to produce them. I’m looking forward to see this lecture tonight.</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-10-of-13#c633954661610000000</link>
		<pubDate>Thu, 03 Dec 2009 19:42:41 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-10-of-13#c633954661610000000</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>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 7 of 13</title>
		<description>
			<![CDATA[
<p>homework:</p>
<p>&nbsp;</p>
<p>2) Express the comprehension [f x | x &lt;- xs, p x] using the functions map and filter.</p>
<p><pre class="brush: text">mapfilter :: (a -&gt; b) -&gt; (a -&gt; Bool) -&gt; [a] -&gt; [b] mapfilter f p = map f . filter p</pre></p>
<p>&nbsp;</p>
<p>3) Redefine map f and filter p using foldr.</p>
<p><pre class="brush: text">map' :: (a -&gt; b) -&gt; [a] -&gt; [b] map' f = foldr (\x v -&gt; f x:v) [] filter' :: (a -&gt; Bool) -&gt; [a] -&gt; [a] filter' p = foldr (\x v -&gt; if p x then x:v else v) []</pre></p>
<p>&nbsp;</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-7-of-13#c633951905570000000</link>
		<pubDate>Mon, 30 Nov 2009 15:09: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-7-of-13#c633951905570000000</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>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 7 of 13</title>
		<description>
			<![CDATA[
<p>Nice post Tom. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>&nbsp;</p>
<p>So much to learn.</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-7-of-13#c633936800510000000</link>
		<pubDate>Fri, 13 Nov 2009 03:34:11 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-7-of-13#c633936800510000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 7 of 13</title>
		<description>
			<![CDATA[
<p>Again nice lecture!</p>
<p>&nbsp;</p>
<p>A comment about implementing takeWhile and dropWhile using foldr. These are functions to take or drop elements at the beginning of a list. So, I think it would be easier to implement them using foldl (fold left). Can it be done with foldr? I’m not sure.
 The drawback to implement them with fold is that they would be useless when dealing with infinite lists. That is because fold(r|l) consume the whole list before producing a result.</p>
<p>&nbsp;</p>
<p>Here is my take on both using foldl</p>
<p><pre class="brush: text">takeWhile' :: (a -&gt; Bool) -&gt; [a] -&gt; [a] takeWhile' p = snd . foldl (\(e,v) x -&gt; if e then (e,v) else if p x then (False,v&#43;&#43;[x]) else (True,v)) (False,[]) dropWhile' :: (a -&gt; Bool) -&gt; [a] -&gt; [a] dropWhile' p = snd . foldl (\(e,v) x -&gt; if
 e then (e,v&#43;&#43;[x]) else if p x then (True,v) else (False,v&#43;&#43;[])) (False,[]) </pre></p>
<p>&nbsp;</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-7-of-13#c633936632510000000</link>
		<pubDate>Thu, 12 Nov 2009 22:54:11 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-7-of-13#c633936632510000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 6 of 13</title>
		<description>
			<![CDATA[
<p>Here is my take on the homework:</p>
<p>&nbsp;</p>
<p>1.- Define:</p>
<p>&nbsp;</p>
<p>and :</p>
<p><pre class="brush: text">and' :: [Bool] -&gt; Bool and' [] = True and' (False:_) = False and' (_:xs) = and xs </pre></p>
<p>&nbsp;</p>
<p>concat:</p>
<p><pre class="brush: text">concat' :: [[a]] -&gt; [a] concat' [] = [] concat' (xs:xss) = xs &#43;&#43; concat' xss</pre></p>
<p>&nbsp;</p>
<p>replicate:</p>
<p><pre class="brush: text">replicate' :: Int -&gt; a -&gt; [a] replicate' 0 x = [] replicate' (n&#43;1) x = x:replicate' n x</pre></p>
<p>&nbsp;</p>
<p>Select the Nth statement of a list:</p>
<p><pre class="brush: text">(!!@) :: [a] -&gt; Int -&gt; a (!!@) (x:_) 0 = x (!!@) (_:xs) (n&#43;1) = xs !!@ n</pre></p>
<p>&nbsp;</p>
<p>elem:</p>
<p><pre class="brush: text">elem' :: (Eq a) =&gt; a -&gt; [a] -&gt; Bool elem' _ [] = False elem' x (y:ys) | x == y = True | otherwise = elem' x ys</pre></p>
<p>&nbsp;</p>
<p>2. Define merge :: [Int] -&gt; [Int] -&gt; [Int]</p>
<p><pre class="brush: text">merge:: (Ord a) =&gt; [a] -&gt; [a] -&gt; [a] merge [] [] = [] merge xs [] = xs merge [] ys = ys merge (x:xs) (y:ys) | x &lt; y = x:merge xs (y:ys) | x == y = x:y:merge xs ys | otherwise = y:merge (x:xs) ys</pre></p>
<p>&nbsp;</p>
<p>3. Define merge sort:</p>
<p><pre class="brush: text">msort :: (Ord a) =&gt; [a] -&gt; [a] msort [] = [] msort [x] = [x] msort xs = merge (msort ys) (msort zs) where [(ys,zs)] = halve xs halve :: [a] -&gt; [([a],[a])] halve [] = [] halve xs = [(take n xs, drop n xs)] where n = (length xs `div` 2)</pre></p>
<p>&nbsp;</p>
<p>I'm having a blast with this series. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></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-6-of-13#c633936547290000000</link>
		<pubDate>Thu, 12 Nov 2009 20:32:09 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-6-of-13#c633936547290000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 6 of 13</title>
		<description>
			<![CDATA[
<p>More homework:</p>
<p>1) Prove that fac n = recfac n</p>
<p>&nbsp;</p>
<p>Definition of recfact n:</p>
<p>(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recfac 0 = 1</p>
<p>(2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recfac (n&#43;1) = (n&#43;1) * recfact n</p>
<p>&nbsp;</p>
<p>Definition of fac n:</p>
<p>(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fac n = product [1...n]</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where</p>
<p>(4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; product [] = 1</p>
<p>(5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; product [1..n] = 1 * 2 * … (n-1) * n</p>
<p>&nbsp;</p>
<p>We want to prove that:</p>
<p><img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-14.gif' alt='Devil' />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fact n = recfac n</p>
<p>&nbsp;</p>
<p>Using induction:</p>
<p>&nbsp;</p>
<p>Case n = 0</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fac 0 = recfac 0</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fac 0 = 1 (Eq. 1)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; recfac 0 = product [1 .. 0] = product [] = 1 (Eq. 4)</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 = 1</p>
<p>&nbsp;</p>
<p>Case (m &#43; 1):</p>
<p>(7)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fac (m&#43;1) = recfac (m&#43;1)</p>
<p>&nbsp;</p>
<p>fac (m&#43;1) = product [&nbsp; 1..(m&#43;1)] = 1 * 2 *….* m * (m&#43;1)</p>
<p>&nbsp;</p>
<ol>
<li>Using Eq.5:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 * 2 *….* m &nbsp;= product [1..m] </li></ol>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fac (m&#43;1) = 1 * 2 *….* m * (m&#43;1) &nbsp;=(product [1..m]) * (m&#43;1)</p>
<p>&nbsp;</p>
<p>(8)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fac (m&#43;1) = (product [1..m]) * (m&#43;1)</p>
<p>&nbsp;</p>
<p>Using Eq 2 : &nbsp;recfac (m&#43;1) = (m&#43;1) * recfac m</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Replacing Eq 8 into Eq 7:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fac (m&#43;1) = (product [1..m]) * (m&#43;1) = recfac (m&#43;1)</p>
<p>&nbsp;</p>
<p>Using Eq 2 on the right side:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (product [1..m]) * (m&#43;1) = (m&#43;1) * recfac m</p>
<p>&nbsp;</p>
<p>Dividing by (m&#43;1) on both sides:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; product [1..m] = recfac m</p>
<p>&nbsp;</p>
<p>Using Eq 3 on the left side:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fac m = recfac m</p>
<p>&nbsp;</p>
<p>Q.E.D.! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></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-6-of-13#c633931632380000000</link>
		<pubDate>Sat, 07 Nov 2009 04:00:38 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-6-of-13#c633931632380000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 6 of 13</title>
		<description>
			<![CDATA[
<p>Again, nice lecture.&nbsp; I'm lloking forward to the rest.</p>
<p>&nbsp;</p>
<p>Here is my take on Append:</p>
<p><pre class="brush: text">public static IEnumerable&lt;T&gt; Append&lt;T&gt;(this IEnumerable&lt;T&gt; a, IEnumerable&lt;T&gt; b) { foreach (var t in a) { yield return t; } foreach (var t in b) { yield return t; } } </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-6-of-13#c633931420770000000</link>
		<pubDate>Fri, 06 Nov 2009 22:07: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-6-of-13#c633931420770000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 5 of 13</title>
		<description>
			<![CDATA[
<p>Here is my take on the homework:</p>
<p>&nbsp;</p>
<p>1. Without looking at the definitions from the standard prelude, define the&nbsp; following library functions using recursion.</p>
<p>&nbsp;</p>
<p>- Decide if all logical values in a list are True:</p>
<p><pre class="brush: text">and' :: [Bool] -&gt; Bool and' [] = True and' (False:_) = False and' (_:xs) = and xs</pre></p>
<p>&nbsp;</p>
<p>- Concatenate a list of lists:</p>
<p><pre class="brush: text">concat' :: [[a]] -&gt; [a] concat' [] = [] concat' (xs:xss) = xs &#43;&#43; concat' xss</pre></p>
<p>&nbsp;</p>
<p>- Produce a list with n identical elements:</p>
<p><pre class="brush: text">replicate' :: Int -&gt; a -&gt; [a] replicate' 0 x = [] replicate' (n&#43;1) x = x:replicate' n x</pre></p>
<p>&nbsp;</p>
<p>- Select the nth element of a list</p>
<p><pre class="brush: text">(!!@) :: [a] -&gt; Int -&gt; a (!!@) (x:_) 0 = x (!!@) (_:xs) (n&#43;1) = xs !!@ n</pre></p>
<p>&nbsp;</p>
<p>- Decide if a value is an element of a list:</p>
<p><pre class="brush: text">elem' :: (Eq a) =&gt; a -&gt; [a] -&gt; Bool elem' _ [] = False elem' x (y:ys) | x == y = True | otherwise = elem' x ys</pre></p>
<p>&nbsp;</p>
<p>2. Define a recursive function merge:: Ord a =&gt; [a] -&gt; [a] -&gt; [a] that&nbsp; merges two sorted lists to give a single sorted list.</p>
<p><pre class="brush: text">merge:: (Ord a) =&gt; [a] -&gt; [a] -&gt; [a] merge [] [] = [] merge xs [] = xs merge [] ys = ys merge (x:xs) (y:ys) | x &lt; y = x:merge xs (y:ys) | x == y = x:y:merge xs ys | otherwise = y:merge (x:xs) ys</pre></p>
<p>&nbsp;</p>
<p>3. Define a recursive function msort :: Ord a =&gt; [a] -&gt; [a] that&nbsp; implements merge sort</p>
<p><pre class="brush: text">msort :: (Ord a) =&gt; [a] -&gt; [a] msort [] = [] msort [x] = [x] msort xs = merge (msort ys) (msort zs) where [(ys,zs)] = halve xs halve :: [a] -&gt; [([a],[a])] halve [] = [] halve xs = [(take n xs, drop n xs)] where n = (length xs `div` 2)</pre></p>
<p>&nbsp;</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-5-of-13#c633931309880000000</link>
		<pubDate>Fri, 06 Nov 2009 19:03: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-5-of-13#c633931309880000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 4 of 13</title>
		<description>
			<![CDATA[
<p>Here is my take on part of the homework</p>
<p>&nbsp;</p>
<p>1. safetail<br /><br /><pre class="brush: text">safetaila :: [a] -[a] safetaila xs = if null xs then [] else tail xs safetailb :: [a] -[a] safetailb xs | null xs = [] | otherwise = tail xs safetailc :: [a] -[a] safetailc [] = [] safetailc (_:xs) = xs </pre></p>
<p><br />2. Implement (||)&nbsp; in three different ways<br /><br /><pre class="brush: text">(||!) :: Bool -Bool -Bool True ||! True = True True ||! False = True False ||! True = True False ||! False = False (||@) :: Bool -Bool -Bool False ||@ False = False _ ||@ _ = True (||#) :: Bool -Bool -Bool False ||# b = b True ||# _ = True</pre><br /><br />3. Redefine (&amp;&amp;)<br /><br /><pre class="brush: text">(&amp;&amp;$) a b = if a == True &amp;&amp; b == True then True else False</pre><br /><br />4. Redefine (&amp;&amp;) again<br /><br /><pre class="brush: text">(&amp;&amp;%) a b = if a == True then b else False</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-4-of-13#c633924436130000000</link>
		<pubDate>Thu, 29 Oct 2009 20:06: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-4-of-13#c633924436130000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 5 of 13</title>
		<description>
			<![CDATA[
<p>At last Thursday is here. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>&nbsp;</p>
<p>Excelent presentation as always. The only thing is that you missed an excelent opportunity to implement &quot;where&quot; using a list comprehension.</p>
<p>&nbsp;</p>
<p><pre class="brush: text">where' :: [a] -&gt; (Int -&gt; a -&gt; Bool) -&gt; [a] where' xs p = [x | (x,i) &lt;- xs', p i x ] where xs' = zip xs [0..]</pre></p>
<p>&nbsp;</p>
<p>Thanks again.</p>
<p>I'm looking forward to the next 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-5-of-13#c633924345700000000</link>
		<pubDate>Thu, 29 Oct 2009 17:36:10 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-5-of-13#c633924345700000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 4 of 13</title>
		<description>
			<![CDATA[
<p>To get what&nbsp; you want you can use the function flip that is on the haskell prelude.
</p>
<p>&nbsp;</p>
<p>The Haskell&nbsp; prelude defines flip as:</p>
<p><pre class="brush: text">
<tt>-- flip f  takes its (first) two arguments in the reverse order of f.</tt>
<tt>flip             :: (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
flip f x y       =  f y x</tt>
</pre></p>
<p>&nbsp;</p>
<p>using flip we can write (-1) 3 as:</p>
<p>&nbsp;</p>
<p><pre class="brush: text">(flip (-) 1) 3  </pre></p>
<p>&nbsp;</p>
<p>Also, the prelude has a substract function defined as:</p>
<p>&nbsp;</p>
<p><pre class="brush: text">
<tt>subtract         :: (Num a) =&gt; a -&gt; a -&gt; a
subtract         =  flip (-)</tt>
</pre></p>
<p>&nbsp;</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-4-of-13#c633921857660000000</link>
		<pubDate>Mon, 26 Oct 2009 20:29:26 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-4-of-13#c633921857660000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals Chapter 4 of 13</title>
		<description>
			<![CDATA[
<p>I love the “back to school” feeling I get with these lectures. I like Novox have been waiting all day for this. Keep up the good work <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></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-4-of-13#c633918415140000000</link>
		<pubDate>Thu, 22 Oct 2009 20:51: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-4-of-13#c633918415140000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 3 of 13</title>
		<description>
			<![CDATA[
<p>Here is part of the homework:</p>
<p>&nbsp;</p>
<p><pre class="brush: text">
{-
1.- What type are the following values:
    ['a','b','c'] :: [Char]
    ('a','b','c') :: (Char,Char,Char)
    [(False,'0'),(True,'1')] :: [(Bool,Char)]
    ([False, True],['0','1']) :: ([Bool],[Char])
    [tail, init, reverse] :: [[a] -&gt; [a]]
-}

-- 2.- What are the type of the following functions:

second :: [a] -&gt; a
second xs = head (tail xs)

swap :: (a,b) -&gt; (b,a)
swap (x,y) = (y,x)

pair:: a -&gt; b -&gt; (a,b)
pair x y = (x,y)

double :: (Num a) =&gt; a -&gt; a
double x = x*2

palindrome :: (Eq a) =&gt; [a] -&gt; Bool
palindrome xs = reverse xs == xs

twice :: (a -&gt; a) -&gt; a -&gt; a
twice f x = f (f x)
</pre></p>
<p>&nbsp;</p>
<p>Nice lecture, please keep up the good work!!! <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></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-3-of-13#c633915666580000000</link>
		<pubDate>Mon, 19 Oct 2009 16:30:58 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-3-of-13#c633915666580000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 3 of 13</title>
		<description>
			<![CDATA[
<p>I think you're missing a great opportunity here. Please ask questions about all the thing that Erik is presenting and you don't understand. I bet you would get a lot of help in the forum. That would help a lot of people that might be having the same issues
 as you. Also it would give Erik an inside of what concepts are difficult to grasp and help him to better present future chapters.
</p>
<p>&nbsp;</p>
<p>Another think hat you can do is read the chapter of the book that Erick is going to present in advance. That way you know what's going to be covered. If you don't have the book, the slides are here:
<a href="http://www.cs.nott.ac.uk/%7Egmh/book.html#slides"><a href="http://www.cs.nott.ac.uk/~gmh/book.html#slides">http&#58;&#47;&#47;www.cs.nott.ac.uk&#47;&#126;gmh&#47;book.html&#35;slides</a></a>.</p>
<p>&nbsp;</p>
<p>I hope this helps. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>&nbsp;</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-3-of-13#c633912616290000000</link>
		<pubDate>Fri, 16 Oct 2009 03:47:09 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-3-of-13#c633912616290000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 3 of 13</title>
		<description>
			<![CDATA[
<p>Exelent! I was looking forward to the next lecture. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></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-3-of-13#c633912274200000000</link>
		<pubDate>Thu, 15 Oct 2009 18:17:00 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-3-of-13#c633912274200000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 2 of 13</title>
		<description>
			<![CDATA[
<p>Thanks exoteric. My original solution for init' didn't use composition until I saw the lecture and Erik started talking about function composition (yes, I did the exercises from the book before the lecture <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-4.gif' alt='Tongue Out' /> ). I'm not sure if good at this point of the
 lecture to introduce pointfree style. But how am I to say <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /></p>
<p>This was my original solution:</p>
<p>&nbsp;</p>
<p><pre class="brush: text">init’ xs = reverse (tail (reverse xs))</pre></p>
<p>&nbsp;</p>
<p>Which I think people not familiar with Haskell would understand better than</p>
<p>&nbsp;</p>
<p>&nbsp;<pre class="brush: text">init’ = reverse . tail . reverse</pre></p>
<p>&nbsp;</p>
<p>I say this, because it took me a while to understand what was going on with the second definition and why the parameter was implicit.</p>
<p>posted by paks8150</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2#c633907046290000000</link>
		<pubDate>Fri, 09 Oct 2009 17:03:49 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2#c633907046290000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 2 of 13</title>
		<description>
			<![CDATA[
<p>I think you're being too harsh on F#. F# is an excellent bridge for people that want to learn functional programming. I has all the familiar things that an imperative programmer expects like mutable variables, the “for” loop, objects, Visual Studio support.
 But once you let go the training wheels, you have access to all the benefits of a functional language.</p>
<p>posted by paks8150</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2#c633906979120000000</link>
		<pubDate>Fri, 09 Oct 2009 15:11:52 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2#c633906979120000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
	<item>
		<title>Re: C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 2 of 13</title>
		<description>
			<![CDATA[
<p>Here are my solutions for #2, #3,#4,#5.</p>
<p>&nbsp;</p>
<p>#2</p>
<p>n = a `div` length xs<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a = 10<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xs = [1 .. 5]</p>
<p>&nbsp;</p>
<p>#3<br />last' = head . reverse</p>
<p>&nbsp;</p>
<p>#4 (Using recursion)</p>
<p>last'' [x] = x<br />last'' (x:y:xs) = last'' (y:xs)</p>
<p><br />#5</p>
<p>init' = reverse . tail . reverse</p>
<p>&nbsp;</p>
<p>init'' xs = take (length xs - 1) xs</p>
<p>&nbsp;</p>
<p>Nice lecture. I really appreciate all the effort. I think we’re on the verge of a paradigm shift. Functional programming is entering the mainstream, like OOP did in the 90’s. I think learning functional programming makes you a better developer on other languages;
 in particular C# where some many concepts are taken from FP. Now is the moment to make the effort and learn it.
</p>
<p>posted by paks8150</p>]]>
		</description>
		<link>http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2#c633906565760000000</link>
		<pubDate>Fri, 09 Oct 2009 03:42:56 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Functional-Programming-Fundamentals/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-2#c633906565760000000</guid>
		<dc:creator>paks8150</dc:creator>
	</item>
</channel>
</rss>