<?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"
	>
<channel>
	<title>Comments on: Debut with a Catamorphism</title>
	<atom:link href="http://blog.tmorris.net/debut-with-a-catamorphism/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tmorris.net/debut-with-a-catamorphism/</link>
	<description>The weblog of Tony Morris</description>
	<pubDate>Fri, 10 Sep 2010 09:54:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Tony Morris</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-35269</link>
		<dc:creator>Tony Morris</dc:creator>
		<pubDate>Fri, 11 Dec 2009 22:20:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-35269</guid>
		<description>Hi Channing,
My sixth operation was for decompression of a trapped nerve (superficial peroneal 10cm proximal to lateral malleolus as it exits the deep fascia). It took 19 doctors two years to not find it and it took me about a year. Then it took a 15 page essay, citing several text books and medical journals, to convince 1 of 3 doctors, who upon performing the surgery, found that the site of entrapment was precisely where I'd said (I drew a dot with a marker).

Thank medical science I found it in the end. Still recovering from the nerve damage (it was extremely compressed and caused a myriad of symptoms).</description>
		<content:encoded><![CDATA[<p>Hi Channing,<br />
My sixth operation was for decompression of a trapped nerve (superficial peroneal 10cm proximal to lateral malleolus as it exits the deep fascia). It took 19 doctors two years to not find it and it took me about a year. Then it took a 15 page essay, citing several text books and medical journals, to convince 1 of 3 doctors, who upon performing the surgery, found that the site of entrapment was precisely where I&#8217;d said (I drew a dot with a marker).</p>
<p>Thank medical science I found it in the end. Still recovering from the nerve damage (it was extremely compressed and caused a myriad of symptoms).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Shaw</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-35225</link>
		<dc:creator>Steven Shaw</dc:creator>
		<pubDate>Wed, 09 Dec 2009 15:01:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-35225</guid>
		<description>Hi Tony, on the meaning of catamorphism - no need to repeat the literature. A link would be good :). Perhaps a book recommendation.

For instance, I get nothing from http://en.wikipedia.org/wiki/Catamorphism though I am reading the blog articles linked at the bottom.</description>
		<content:encoded><![CDATA[<p>Hi Tony, on the meaning of catamorphism - no need to repeat the literature. A link would be good :). Perhaps a book recommendation.</p>
<p>For instance, I get nothing from <a href="http://en.wikipedia.org/wiki/Catamorphism" onclick="javascript:pageTracker._trackPageview('/outbound/comment/en.wikipedia.org');" rel="nofollow">http://en.wikipedia.org/wiki/Catamorphism</a> though I am reading the blog articles linked at the bottom.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arnaud Bailly</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-35169</link>
		<dc:creator>Arnaud Bailly</dc:creator>
		<pubDate>Mon, 07 Dec 2009 21:24:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-35169</guid>
		<description>Hello,

@Steven not sure this will really help you, but the first mention I read on such strange beasts was in the classical artical "Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire" (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.125). As far as I understand it, a catamorphism is pure functional way to express behavior of instances of a type, something like an interface in OO, I guess, by encapsulating in a single HOF the "constructors" of the type.

HTH
Arnaud</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>@Steven not sure this will really help you, but the first mention I read on such strange beasts was in the classical artical &#8220;Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire&#8221; (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.125). As far as I understand it, a catamorphism is pure functional way to express behavior of instances of a type, something like an interface in OO, I guess, by encapsulating in a single HOF the &#8220;constructors&#8221; of the type.</p>
<p>HTH<br />
Arnaud</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Channing Walton</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-35168</link>
		<dc:creator>Channing Walton</dc:creator>
		<pubDate>Mon, 07 Dec 2009 19:45:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-35168</guid>
		<description>Hi Tony,
glad to know your health problems are being resolved. I've been through something similar: 4 years of (at times extreme) pain from trapped nerves. A dozen doctors, two surgeons and physios didn't find it. A pain specialist found it in 10 mins and his physio made significant improvements in 1/2 hour!!!

Thanks for this example, its taught me a lot.

Channing</description>
		<content:encoded><![CDATA[<p>Hi Tony,<br />
glad to know your health problems are being resolved. I&#8217;ve been through something similar: 4 years of (at times extreme) pain from trapped nerves. A dozen doctors, two surgeons and physios didn&#8217;t find it. A pain specialist found it in 10 mins and his physio made significant improvements in 1/2 hour!!!</p>
<p>Thanks for this example, its taught me a lot.</p>
<p>Channing</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-35143</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Sat, 05 Dec 2009 23:20:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-35143</guid>
		<description>G’day Steven,
I don’t see much benefit in repeating much of the literature about what is a catamorphism, though I understand it may be difficult to digest. However, I could point out that:

&lt;pre lang="Scala"&gt;
option.cata(Some, None) == option.
&lt;/pre&gt;

In other words, plonking the constructors into cata gives you an identity function.

Yes, once-inhabited means there is only one solution. Finding inhabitants for a type is equivalent to proving a logical theorem (see Curry-Howard Isomorphism), however, some languages allow you to "tell lies" in your proof e.g. bottom values, non-termination, side-effects. This does not negate the fact of the matter.

The Scala mailing list has all sorts :) but education is paramount!</description>
		<content:encoded><![CDATA[<p>G’day Steven,<br />
I don’t see much benefit in repeating much of the literature about what is a catamorphism, though I understand it may be difficult to digest. However, I could point out that:</p>

<div class="wp_syntax"><div class="code"><pre class="scala">option.<span style="color: #000000;">cata</span><span style="color: #F78811;">&#40;</span>Some, None<span style="color: #F78811;">&#41;</span> <span style="color: #000080;">==</span> option.</pre></div></div>

<p>In other words, plonking the constructors into cata gives you an identity function.</p>
<p>Yes, once-inhabited means there is only one solution. Finding inhabitants for a type is equivalent to proving a logical theorem (see Curry-Howard Isomorphism), however, some languages allow you to &#8220;tell lies&#8221; in your proof e.g. bottom values, non-termination, side-effects. This does not negate the fact of the matter.</p>
<p>The Scala mailing list has all sorts <img src='http://blog.tmorris.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> but education is paramount!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Shaw</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-35027</link>
		<dc:creator>Steven Shaw</dc:creator>
		<pubDate>Sat, 05 Dec 2009 16:34:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-35027</guid>
		<description>Haskell was a bit harder for me.

Tony, question - what *is* a catamorphism?

I saw that thread on the Scala mailing list about "once-inhabited type". Google gives me nothing except the Scala thread on nabble :). Does once-inhabited mean that there's only one solution for the function implementation?</description>
		<content:encoded><![CDATA[<p>Haskell was a bit harder for me.</p>
<p>Tony, question - what *is* a catamorphism?</p>
<p>I saw that thread on the Scala mailing list about &#8220;once-inhabited type&#8221;. Google gives me nothing except the Scala thread on nabble :). Does once-inhabited mean that there&#8217;s only one solution for the function implementation?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steven Shaw</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-35026</link>
		<dc:creator>Steven Shaw</dc:creator>
		<pubDate>Sat, 05 Dec 2009 15:03:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-35026</guid>
		<description>Hi Tony, enjoyed the Scala version of this exercise. Learned some lessons from your Scala implementation too (won't spoil for others). Cheers! On to try the Haskell version :)</description>
		<content:encoded><![CDATA[<p>Hi Tony, enjoyed the Scala version of this exercise. Learned some lessons from your Scala implementation too (won&#8217;t spoil for others). Cheers! On to try the Haskell version <img src='http://blog.tmorris.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lachlan O'Dea</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-35005</link>
		<dc:creator>Lachlan O'Dea</dc:creator>
		<pubDate>Fri, 04 Dec 2009 05:15:35 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-35005</guid>
		<description>Glad to hear things are looking up for you on the medical front.</description>
		<content:encoded><![CDATA[<p>Glad to hear things are looking up for you on the medical front.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-34987</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Thu, 03 Dec 2009 03:53:50 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-34987</guid>
		<description>Excellent exercise, that made my day!

Now there is a trait defining the behavior of an Option[A], I'm wondering. In which design situation would that be useful to have "class A extends MyOption[A]"? (excepted to create some and none of course).

Eric.</description>
		<content:encoded><![CDATA[<p>Excellent exercise, that made my day!</p>
<p>Now there is a trait defining the behavior of an Option[A], I&#8217;m wondering. In which design situation would that be useful to have &#8220;class A extends MyOption[A]&#8220;? (excepted to create some and none of course).</p>
<p>Eric.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Morris</title>
		<link>http://blog.tmorris.net/debut-with-a-catamorphism/#comment-34978</link>
		<dc:creator>Tony Morris</dc:creator>
		<pubDate>Wed, 02 Dec 2009 11:49:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/?p=594#comment-34978</guid>
		<description>Thanks Jason.</description>
		<content:encoded><![CDATA[<p>Thanks Jason.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
