<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for Patterns in Functional Programming</title>
	<atom:link href="http://patternsinfp.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://patternsinfp.wordpress.com</link>
	<description>Exploiting the relationship between data structure and program structure</description>
	<lastBuildDate>Thu, 02 May 2013 14:19:27 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on Lenses are the coalgebras for the costate comonad by The Comonad.Reader &#187; Representing Applicatives</title>
		<link>http://patternsinfp.wordpress.com/2011/01/31/lenses-are-the-coalgebras-for-the-costate-comonad/#comment-430</link>
		<dc:creator><![CDATA[The Comonad.Reader &#187; Representing Applicatives]]></dc:creator>
		<pubDate>Thu, 02 May 2013 14:19:27 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=118#comment-430</guid>
		<description><![CDATA[[...] And now suppose we take our representable functor in the form s -&gt; a and paired it with an &quot;index&quot; into that function, in the form of a concrete s. Then we&#039;d be able to step that s forward or backwards and navigate around our structure of as. And this is precisely the Store Comonad! And this in turn gives a characterization of the lens laws. [...]]]></description>
		<content:encoded><![CDATA[<p>[...] And now suppose we take our representable functor in the form s -&gt; a and paired it with an &quot;index&quot; into that function, in the form of a concrete s. Then we&#039;d be able to step that s forward or backwards and navigate around our structure of as. And this is precisely the Store Comonad! And this in turn gives a characterization of the lens laws. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Functional programming by Quora</title>
		<link>http://patternsinfp.wordpress.com/2010/09/03/functional-programming/#comment-239</link>
		<dc:creator><![CDATA[Quora]]></dc:creator>
		<pubDate>Fri, 02 Mar 2012 01:38:06 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=45#comment-239</guid>
		<description><![CDATA[&lt;strong&gt;As a self-taught PHP programmer how do I go about finding my bad habits?...&lt;/strong&gt;

* Read other people&#039;s code. * Find a mentor whose ability and style you look up to. * Use a framework. If this chafes, decide why. Try different frameworks. * Study modelling: Design Patterns. * Study another paradigm—e.g. teach yourself Scheme, Lisp,...]]></description>
		<content:encoded><![CDATA[<p><strong>As a self-taught PHP programmer how do I go about finding my bad habits?&#8230;</strong></p>
<p>* Read other people&#8217;s code. * Find a mentor whose ability and style you look up to. * Use a framework. If this chafes, decide why. Try different frameworks. * Study modelling: Design Patterns. * Study another paradigm—e.g. teach yourself Scheme, Lisp,&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Comprehensions by jeremygibbons</title>
		<link>http://patternsinfp.wordpress.com/2012/01/19/comprehensions/#comment-177</link>
		<dc:creator><![CDATA[jeremygibbons]]></dc:creator>
		<pubDate>Sat, 21 Jan 2012 17:59:02 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=227#comment-177</guid>
		<description><![CDATA[Quite a few people have written about probability distributions as a monad; there are some references in the &quot;Just Do It&quot; paper linked above (ie http://www.cs.ox.ac.uk/publications/publication4877-abstract.html).]]></description>
		<content:encoded><![CDATA[<p>Quite a few people have written about probability distributions as a monad; there are some references in the &#8220;Just Do It&#8221; paper linked above (ie <a href="http://www.cs.ox.ac.uk/publications/publication4877-abstract.html" rel="nofollow">http://www.cs.ox.ac.uk/publications/publication4877-abstract.html</a>).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Comprehensions by Eric Macaulay</title>
		<link>http://patternsinfp.wordpress.com/2012/01/19/comprehensions/#comment-176</link>
		<dc:creator><![CDATA[Eric Macaulay]]></dc:creator>
		<pubDate>Sat, 21 Jan 2012 13:32:40 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=227#comment-176</guid>
		<description><![CDATA[Having just begun to study probability, I found your little facts concerning probability distributions quite intriguing: can you recommend any sources where one might explore further?]]></description>
		<content:encoded><![CDATA[<p>Having just begun to study probability, I found your little facts concerning probability distributions quite intriguing: can you recommend any sources where one might explore further?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Comprehensions by Josef</title>
		<link>http://patternsinfp.wordpress.com/2012/01/19/comprehensions/#comment-173</link>
		<dc:creator><![CDATA[Josef]]></dc:creator>
		<pubDate>Fri, 20 Jan 2012 13:31:35 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=227#comment-173</guid>
		<description><![CDATA[Fair enough.
Considering just the translation of monad comprehensions I personally prefer the version using (&gt;&gt;=) over the one using join though.]]></description>
		<content:encoded><![CDATA[<p>Fair enough.<br />
Considering just the translation of monad comprehensions I personally prefer the version using (&gt;&gt;=) over the one using join though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Comprehensions by jeremygibbons</title>
		<link>http://patternsinfp.wordpress.com/2012/01/19/comprehensions/#comment-172</link>
		<dc:creator><![CDATA[jeremygibbons]]></dc:creator>
		<pubDate>Fri, 20 Jan 2012 10:45:44 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=227#comment-172</guid>
		<description><![CDATA[I think it&#039;s generally a matter of taste whether to use concat and join or concatMap and bind; they&#039;re equivalent. But imho, algebras for a monad come out much cleaner with join than with bind.]]></description>
		<content:encoded><![CDATA[<p>I think it&#8217;s generally a matter of taste whether to use concat and join or concatMap and bind; they&#8217;re equivalent. But imho, algebras for a monad come out much cleaner with join than with bind.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Comprehensions by Josef</title>
		<link>http://patternsinfp.wordpress.com/2012/01/19/comprehensions/#comment-169</link>
		<dc:creator><![CDATA[Josef]]></dc:creator>
		<pubDate>Thu, 19 Jan 2012 19:40:11 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=227#comment-169</guid>
		<description><![CDATA[I&#039;m a little bit surprised that you don&#039;t mention concatMap and use it in the translation of list comprehensions as it is the (&gt;&gt;=) of the list monad and makes the generalization from lists to monads even clearer.]]></description>
		<content:encoded><![CDATA[<p>I&#8217;m a little bit surprised that you don&#8217;t mention concatMap and use it in the translation of list comprehensions as it is the (&gt;&gt;=) of the list monad and makes the generalization from lists to monads even clearer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Comprehensions by jeremygibbons</title>
		<link>http://patternsinfp.wordpress.com/2012/01/19/comprehensions/#comment-168</link>
		<dc:creator><![CDATA[jeremygibbons]]></dc:creator>
		<pubDate>Thu, 19 Jan 2012 17:00:11 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=227#comment-168</guid>
		<description><![CDATA[Oops. Fixed - thanks.]]></description>
		<content:encoded><![CDATA[<p>Oops. Fixed &#8211; thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Comprehensions by bmeph</title>
		<link>http://patternsinfp.wordpress.com/2012/01/19/comprehensions/#comment-167</link>
		<dc:creator><![CDATA[bmeph]]></dc:creator>
		<pubDate>Thu, 19 Jan 2012 16:11:39 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=227#comment-167</guid>
		<description><![CDATA[Shouldn&#039;t those bag- and set-using comprehensions&#039; filter be &quot;odd a,&quot; vice &quot;odd x&quot;?
Or is that an established conventional meaning?
(I Am Not A Mathematician, I just play one on the Internet...)]]></description>
		<content:encoded><![CDATA[<p>Shouldn&#8217;t those bag- and set-using comprehensions&#8217; filter be &#8220;odd a,&#8221; vice &#8220;odd x&#8221;?<br />
Or is that an established conventional meaning?<br />
(I Am Not A Mathematician, I just play one on the Internet&#8230;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Comprehensions by Dan Doel</title>
		<link>http://patternsinfp.wordpress.com/2012/01/19/comprehensions/#comment-166</link>
		<dc:creator><![CDATA[Dan Doel]]></dc:creator>
		<pubDate>Thu, 19 Jan 2012 15:06:17 +0000</pubDate>
		<guid isPermaLink="false">http://patternsinfp.wordpress.com/?p=227#comment-166</guid>
		<description><![CDATA[Monad comprehensions in Haskell 1.4 used MonadZero for matches, and there was no fail in Monad. However, there was also an extra notion of an unfailable pattern, which allowed the following to not use MonadZero:

[ x + y &#124; (x, y) &lt;- l ]

(x, y) is an unfailable pattern because it can only be refuted by bottom. For Haskell 98, unfailable patterns were removed, but it was deemed unacceptable for the above code to use MonadZero, so fail was added instead, and all Monads were given the ability to have arbitrary matches in a weird compromise.]]></description>
		<content:encoded><![CDATA[<p>Monad comprehensions in Haskell 1.4 used MonadZero for matches, and there was no fail in Monad. However, there was also an extra notion of an unfailable pattern, which allowed the following to not use MonadZero:</p>
<p>[ x + y | (x, y) &lt;- l ]</p>
<p>(x, y) is an unfailable pattern because it can only be refuted by bottom. For Haskell 98, unfailable patterns were removed, but it was deemed unacceptable for the above code to use MonadZero, so fail was added instead, and all Monads were given the ability to have arbitrary matches in a weird compromise.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
