<?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/"
		>
<channel>
	<title>Comments on: Soliciting advice</title>
	<atom:link href="http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/</link>
	<description>Because my LiveJournal is too silly</description>
	<lastBuildDate>Sat, 17 Sep 2011 02:28:35 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Michi</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-169687</link>
		<dc:creator>Michi</dc:creator>
		<pubDate>Sun, 06 Sep 2009 21:07:17 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-169687</guid>
		<description>John: I&#039;m not all that certain I see how Category Theory would make an easy interface between your levels. Of course, if you DO figure it out, it&#039;ll be nice to see how you do it, but I remain cautiously pessimistic right now.</description>
		<content:encoded><![CDATA[<p>John: I&#8217;m not all that certain I see how Category Theory would make an easy interface between your levels. Of course, if you DO figure it out, it&#8217;ll be nice to see how you do it, but I remain cautiously pessimistic right now.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John McFall</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-169683</link>
		<dc:creator>John McFall</dc:creator>
		<pubDate>Sun, 06 Sep 2009 20:14:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-169683</guid>
		<description>I am a retired economist turned marketing man. I am writing a book which will be concerned partly with an economic model which will address the chronic variability of the system, capitalist or otherwise.  I am approaching it at three main levels:  1.  Set-theoretic, where the main task undertaken will be to strictly define the Universe of Discourse as Arrow and Debreu did fairly successfully in regard to their now-famous model.  Its a beautiful model but it just sits there, doing nothing, except maybe to suggest that if we gave it some impulsion (an old-fashioned shove) it would give us a clue to why, instead of a static or even a dynamic equilibrium we go through a centuries-long series of stops and starts in economic growth.
(2)  In section two I am hoping that the conceptual field of Category Theory would enable us to give teeth to simple set-theoretic models of economic growth by providing the necessary one-to-one, one-to-many and many-to-one dynamic/kinetic relations which would allow and impel the damn thing to &quot;go&quot; or function. 
(3)  The third level would of course be the programming level which would provide the input to some enormous array of computers.  This system would have room for built-in governors, not human ones but governors like those in the early steam engines.  That&#039;s where Category Theory would do its wonderful stuff.

However!  Levels 1 and 3 I am fairly happy with.  With Category Theory I have struggled manfully from fairly simple discussions to the beautiful output of a MacLane or a Lawvere.   I need a simple example which shows me how to connect the three levels in a happy, functionning whole.  How does one program an artificial child pedalling an artificial bicycle for, say, five minutes (No - ten seconds) using our three sets of tools? How do we build in the categories to make sure she does not fall off?  Good luck  John




programming level where we finally get down to business
#)</description>
		<content:encoded><![CDATA[<p>I am a retired economist turned marketing man. I am writing a book which will be concerned partly with an economic model which will address the chronic variability of the system, capitalist or otherwise.  I am approaching it at three main levels:  1.  Set-theoretic, where the main task undertaken will be to strictly define the Universe of Discourse as Arrow and Debreu did fairly successfully in regard to their now-famous model.  Its a beautiful model but it just sits there, doing nothing, except maybe to suggest that if we gave it some impulsion (an old-fashioned shove) it would give us a clue to why, instead of a static or even a dynamic equilibrium we go through a centuries-long series of stops and starts in economic growth.<br />
(2)  In section two I am hoping that the conceptual field of Category Theory would enable us to give teeth to simple set-theoretic models of economic growth by providing the necessary one-to-one, one-to-many and many-to-one dynamic/kinetic relations which would allow and impel the damn thing to &#8220;go&#8221; or function.<br />
(3)  The third level would of course be the programming level which would provide the input to some enormous array of computers.  This system would have room for built-in governors, not human ones but governors like those in the early steam engines.  That&#8217;s where Category Theory would do its wonderful stuff.</p>
<p>However!  Levels 1 and 3 I am fairly happy with.  With Category Theory I have struggled manfully from fairly simple discussions to the beautiful output of a MacLane or a Lawvere.   I need a simple example which shows me how to connect the three levels in a happy, functionning whole.  How does one program an artificial child pedalling an artificial bicycle for, say, five minutes (No &#8211; ten seconds) using our three sets of tools? How do we build in the categories to make sure she does not fall off?  Good luck  John</p>
<p>programming level where we finally get down to business<br />
#)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Armstrong</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-169132</link>
		<dc:creator>John Armstrong</dc:creator>
		<pubDate>Wed, 26 Aug 2009 14:51:20 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-169132</guid>
		<description>pozorvlak, I&#039;d say you haven&#039;t grokked the point of &lt;em&gt;higher&lt;/em&gt; category theory at all.  If two definitions give rise to equivalent categories of models and morphisms, one should really consider them &lt;em&gt;equivalent&lt;/em&gt;, not &quot;the same&quot;.</description>
		<content:encoded><![CDATA[<p>pozorvlak, I&#8217;d say you haven&#8217;t grokked the point of <em>higher</em> category theory at all.  If two definitions give rise to equivalent categories of models and morphisms, one should really consider them <em>equivalent</em>, not &#8220;the same&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pozorvlak</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-169119</link>
		<dc:creator>pozorvlak</dc:creator>
		<pubDate>Wed, 26 Aug 2009 12:44:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-169119</guid>
		<description>I&#039;m a bit late to this - sorry.

Ordinarily, I&#039;d say you should get to adjunctions as quickly as possible, and then concentrate on the various theorems relating adjunctions and limits, and on the connections between monads and adjunctions. I don&#039;t really think that topoi would be interesting to your proposed audience, but then I know very little about topos theory. BTW, Hask lacks equalisers, so it doesn&#039;t have all finite limits (it&#039;s an easy theorem that one can construct all finite limits if you have finite products and equalisers, or if you have binary pullbacks). Coproducts are, as the name suggests, colimits :-)

Jeff Egger recently taught what sounded like a really interesting basic CT course, which avoids all the tedious symbol-bashing by proving all the basics using string diagrams. It might be worth getting in touch with him to ask how it went.

I can perhaps explain the monad/triple thing. Among categorists, &quot;triple&quot; is a not-quite-abandoned name for &quot;monad&quot;, still used by a few of the older generation. There&#039;s no semantic difference between the two. What Haskellers call a &quot;monad&quot; is called a &quot;strong monad&quot; by categorists, and that&#039;s a slightly different notion. If John&#039;s really saying that two concepts with different but totally equivalent definitions ought to be considered different, then I&#039;m tempted to suggest that he hasn&#039;t grokked the point of category theory at all - if two definitions give rise to equivalent categories of models and morphisms, one should really consider them the same.</description>
		<content:encoded><![CDATA[<p>I&#8217;m a bit late to this &#8211; sorry.</p>
<p>Ordinarily, I&#8217;d say you should get to adjunctions as quickly as possible, and then concentrate on the various theorems relating adjunctions and limits, and on the connections between monads and adjunctions. I don&#8217;t really think that topoi would be interesting to your proposed audience, but then I know very little about topos theory. BTW, Hask lacks equalisers, so it doesn&#8217;t have all finite limits (it&#8217;s an easy theorem that one can construct all finite limits if you have finite products and equalisers, or if you have binary pullbacks). Coproducts are, as the name suggests, colimits <img src='http://blog.mikael.johanssons.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Jeff Egger recently taught what sounded like a really interesting basic CT course, which avoids all the tedious symbol-bashing by proving all the basics using string diagrams. It might be worth getting in touch with him to ask how it went.</p>
<p>I can perhaps explain the monad/triple thing. Among categorists, &#8220;triple&#8221; is a not-quite-abandoned name for &#8220;monad&#8221;, still used by a few of the older generation. There&#8217;s no semantic difference between the two. What Haskellers call a &#8220;monad&#8221; is called a &#8220;strong monad&#8221; by categorists, and that&#8217;s a slightly different notion. If John&#8217;s really saying that two concepts with different but totally equivalent definitions ought to be considered different, then I&#8217;m tempted to suggest that he hasn&#8217;t grokked the point of category theory at all &#8211; if two definitions give rise to equivalent categories of models and morphisms, one should really consider them the same.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mikael Vejdemo Johansson</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167745</link>
		<dc:creator>Mikael Vejdemo Johansson</dc:creator>
		<pubDate>Fri, 31 Jul 2009 17:50:02 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167745</guid>
		<description>Thanks, John, for clarifying the role of the subobject classifier.

There is an issue with all limits in Hask, though, it turns out. Having all limits is more than even the idealized Haskell category manages - and the keyword there seems to be Dependent Types.</description>
		<content:encoded><![CDATA[<p>Thanks, John, for clarifying the role of the subobject classifier.</p>
<p>There is an issue with all limits in Hask, though, it turns out. Having all limits is more than even the idealized Haskell category manages &#8211; and the keyword there seems to be Dependent Types.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Armstrong</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167557</link>
		<dc:creator>John Armstrong</dc:creator>
		<pubDate>Mon, 27 Jul 2009 19:08:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167557</guid>
		<description>Well let&#039;s see.. actually I think that that post I linked to is slightly wrong.  You need to &lt;em&gt;specify&lt;/em&gt; the $latex \varepsilon$ monic instead of universally quantifying it.  That is, you need to pick something like the &quot;element of&quot; relation.

So, what monic in the category of Haskell types mimics the &quot;element of&quot; relation, using [T] as power object?

I don&#039;t have a copy myself, but I think the approach I found most sensible is in chapter IV of MacLane and Moerdijk.  Reviewing my notes, they start with (binary) pullbacks, a terminal object, a subobject classifier, and a slightly different set of data to specify power objects.  Since we know how power objects and exponentials will eventually relate, and that Hask has exponentials, we can use that to define the appropriate power objects once we have the subobject classifier.

Okay, so I &lt;em&gt;still&lt;/em&gt; think that the classifying object will be the Boolean type.  The terminal type should be what.. does Haskell have a type like C&#039;s &quot;void&quot;?  Then the (monic) computable function from void to Boolean should be &quot;return True&quot;.

The question (and I&#039;m not a Haskell expert) would then be this: for every (monic) computable function $latex m:S\rightarrow B$, is there a unique computable function $latex B\rightarrow\mathbf{Bool}$ that returns &quot;true&quot; on instances of type B in the image of m and &quot;false&quot; on everything else?</description>
		<content:encoded><![CDATA[<p>Well let&#8217;s see.. actually I think that that post I linked to is slightly wrong.  You need to <em>specify</em> the $latex \varepsilon$ monic instead of universally quantifying it.  That is, you need to pick something like the &#8220;element of&#8221; relation.</p>
<p>So, what monic in the category of Haskell types mimics the &#8220;element of&#8221; relation, using [T] as power object?</p>
<p>I don&#8217;t have a copy myself, but I think the approach I found most sensible is in chapter IV of MacLane and Moerdijk.  Reviewing my notes, they start with (binary) pullbacks, a terminal object, a subobject classifier, and a slightly different set of data to specify power objects.  Since we know how power objects and exponentials will eventually relate, and that Hask has exponentials, we can use that to define the appropriate power objects once we have the subobject classifier.</p>
<p>Okay, so I <em>still</em> think that the classifying object will be the Boolean type.  The terminal type should be what.. does Haskell have a type like C&#8217;s &#8220;void&#8221;?  Then the (monic) computable function from void to Boolean should be &#8220;return True&#8221;.</p>
<p>The question (and I&#8217;m not a Haskell expert) would then be this: for every (monic) computable function $latex m:S\rightarrow B$, is there a unique computable function $latex B\rightarrow\mathbf{Bool}$ that returns &#8220;true&#8221; on instances of type B in the image of m and &#8220;false&#8221; on everything else?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michi</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167550</link>
		<dc:creator>Michi</dc:creator>
		<pubDate>Mon, 27 Jul 2009 16:16:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167550</guid>
		<description>John: Ooooooh, right.

I&#039;d go with pointing at the List type as a potential power object. Hence, for the type T, the power object&#039;d be [T].</description>
		<content:encoded><![CDATA[<p>John: Ooooooh, right.</p>
<p>I&#8217;d go with pointing at the List type as a potential power object. Hence, for the type T, the power object&#8217;d be [T].</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Armstrong</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167548</link>
		<dc:creator>John Armstrong</dc:creator>
		<pubDate>Mon, 27 Jul 2009 16:11:15 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167548</guid>
		<description>&lt;a href=&quot;http://topos-physics.org/topos/Power_object&quot; rel=&quot;nofollow&quot;&gt;Here&lt;/a&gt; is a pretty concise categorical definition of a power object.</description>
		<content:encoded><![CDATA[<p><a href="http://topos-physics.org/topos/Power_object" rel="nofollow">Here</a> is a pretty concise categorical definition of a power object.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Armstrong</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167547</link>
		<dc:creator>John Armstrong</dc:creator>
		<pubDate>Mon, 27 Jul 2009 16:01:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167547</guid>
		<description>Well, the nice thing is that if you have all finite limits and power objects you can *build* a subobject classifier!

Incidentally, what you&#039;ve told me is that your category contains &lt;em&gt;exponentials&lt;/em&gt;, not power objects.  A power object is something like a power set.  It turns out that when you&#039;ve got a subobject classifier ? then the power object P(X) is the exponential ?^X.  And a subobject classifier &lt;em&gt;should&lt;/em&gt; be something like the Boolean type.  It&#039;s like the set of truth values in the category of sets!</description>
		<content:encoded><![CDATA[<p>Well, the nice thing is that if you have all finite limits and power objects you can *build* a subobject classifier!</p>
<p>Incidentally, what you&#8217;ve told me is that your category contains <em>exponentials</em>, not power objects.  A power object is something like a power set.  It turns out that when you&#8217;ve got a subobject classifier ? then the power object P(X) is the exponential ?^X.  And a subobject classifier <em>should</em> be something like the Boolean type.  It&#8217;s like the set of truth values in the category of sets!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michi</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167543</link>
		<dc:creator>Michi</dc:creator>
		<pubDate>Mon, 27 Jul 2009 13:53:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167543</guid>
		<description>It has all power objects: A^B is just the type B -&gt; A. 

As for finite limits, I&#039;m less certain that it holds. Certainly, it has products and coproducts, but equational reasoning is often a matter of programming contracts more than of strict enforcement. However, I guess that one could argue that finite limits exist by virtue of having products, coproducts and a sensible QuickCheck suite verifying, Monte Carlo-style, any further relations.

The part I&#039;m really iffy on is the subobject classifier (having read all of ... five sentences of topoi that I understood by now...) - I don&#039;t see how that fits.</description>
		<content:encoded><![CDATA[<p>It has all power objects: A^B is just the type B -> A. </p>
<p>As for finite limits, I&#8217;m less certain that it holds. Certainly, it has products and coproducts, but equational reasoning is often a matter of programming contracts more than of strict enforcement. However, I guess that one could argue that finite limits exist by virtue of having products, coproducts and a sensible QuickCheck suite verifying, Monte Carlo-style, any further relations.</p>
<p>The part I&#8217;m really iffy on is the subobject classifier (having read all of &#8230; five sentences of topoi that I understood by now&#8230;) &#8211; I don&#8217;t see how that fits.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Armstrong</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167542</link>
		<dc:creator>John Armstrong</dc:creator>
		<pubDate>Mon, 27 Jul 2009 13:37:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167542</guid>
		<description>Well let&#039;s see.. does it have

a) All finite limits?

b) All power objects?</description>
		<content:encoded><![CDATA[<p>Well let&#8217;s see.. does it have</p>
<p>a) All finite limits?</p>
<p>b) All power objects?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mikael Vejdemo Johansson</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167532</link>
		<dc:creator>Mikael Vejdemo Johansson</dc:creator>
		<pubDate>Mon, 27 Jul 2009 10:28:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167532</guid>
		<description>wren: Thank you. My primary wish for the course is to make it a good gateway from the CS student who has heard categories mentioned in passing to someone who can start reading about the recursion theory things on their own; I certainly would like to include it in the course, but I don&#039;t know whether I&#039;ll have time for it.

John: One of my main intentions with the course is to be able to discuss the Hask category of Haskell types and computable functions between them. Is this a topos?</description>
		<content:encoded><![CDATA[<p>wren: Thank you. My primary wish for the course is to make it a good gateway from the CS student who has heard categories mentioned in passing to someone who can start reading about the recursion theory things on their own; I certainly would like to include it in the course, but I don&#8217;t know whether I&#8217;ll have time for it.</p>
<p>John: One of my main intentions with the course is to be able to discuss the Hask category of Haskell types and computable functions between them. Is this a topos?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: wren ng thornton</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167317</link>
		<dc:creator>wren ng thornton</dc:creator>
		<pubDate>Wed, 22 Jul 2009 22:20:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167317</guid>
		<description>All of the above are good comments.

If I were trying to bridge the gap from Haskell to category theory I&#039;d be sure to throw in all the goodies from recursion theory (cata-, ana-, hylo-, para-,...) as well as tricks like Swierstra&#039;s &lt;a href=&quot;http://wadler.blogspot.com/2008/02/data-types-la-carte.html&quot; rel=&quot;nofollow&quot;&gt;Data Types a la Carte&lt;/a&gt;. Both of these focus a lot on functors which are still down-to-earth enough to be easily grasped, but abstract enough to see where you&#039;re headed: the perfect gateway drug. (Be sure to cover the laws of the various recursions, not just the recursive pattern.)

I&#039;d also spend some time doing an aside on deforestation, build/fold and unfold/destroy fusion, generalized Church encodings, why/how hylomorphisms are an optimization, and the like. These topics help to get into parametricity which leads to free theorems; and the focus on manipulating morphisms while &quot;ignoring&quot; the objects and their structure helps to break away from the thinking that&#039;s so prevalent in set theory but antithetical to the category theoretic perspective.

There&#039;s a lot of stuff out there on just the raw CT. The problem with most of it, IMO, is that it&#039;s &lt;i&gt;just&lt;/i&gt; CT. Basic CT is pretty easy, but seeing how to apply it to new tasks is a lot harder. Even though there are practical applications all over the place, there isn&#039;t a really good resource for demonstrating the applicability of CT and charting out the overall geography of the field. I think the best thing for your course would be to try to give some of that geography so your students will have a better understanding for what areas of CT to continue exploring based on their interests.</description>
		<content:encoded><![CDATA[<p>All of the above are good comments.</p>
<p>If I were trying to bridge the gap from Haskell to category theory I&#8217;d be sure to throw in all the goodies from recursion theory (cata-, ana-, hylo-, para-,&#8230;) as well as tricks like Swierstra&#8217;s <a href="http://wadler.blogspot.com/2008/02/data-types-la-carte.html" rel="nofollow">Data Types a la Carte</a>. Both of these focus a lot on functors which are still down-to-earth enough to be easily grasped, but abstract enough to see where you&#8217;re headed: the perfect gateway drug. (Be sure to cover the laws of the various recursions, not just the recursive pattern.)</p>
<p>I&#8217;d also spend some time doing an aside on deforestation, build/fold and unfold/destroy fusion, generalized Church encodings, why/how hylomorphisms are an optimization, and the like. These topics help to get into parametricity which leads to free theorems; and the focus on manipulating morphisms while &#8220;ignoring&#8221; the objects and their structure helps to break away from the thinking that&#8217;s so prevalent in set theory but antithetical to the category theoretic perspective.</p>
<p>There&#8217;s a lot of stuff out there on just the raw CT. The problem with most of it, IMO, is that it&#8217;s <i>just</i> CT. Basic CT is pretty easy, but seeing how to apply it to new tasks is a lot harder. Even though there are practical applications all over the place, there isn&#8217;t a really good resource for demonstrating the applicability of CT and charting out the overall geography of the field. I think the best thing for your course would be to try to give some of that geography so your students will have a better understanding for what areas of CT to continue exploring based on their interests.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michi</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167316</link>
		<dc:creator>Michi</dc:creator>
		<pubDate>Wed, 22 Jul 2009 21:53:04 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167316</guid>
		<description>Damien: The modus operandi for the course is to connect up with the CS undergrads who have done Haskell, but not gotten enough connection to the underlying category theory, and give them the grounding they need to see the connections, and see the point of categories.

I could probably take a look at Charity - thank you for the suggestion - but it&#039;s not going to be a major focus. I don&#039;t want to teach a new programming language _too_ if I can avoid it. :-)</description>
		<content:encoded><![CDATA[<p>Damien: The modus operandi for the course is to connect up with the CS undergrads who have done Haskell, but not gotten enough connection to the underlying category theory, and give them the grounding they need to see the connections, and see the point of categories.</p>
<p>I could probably take a look at Charity &#8211; thank you for the suggestion &#8211; but it&#8217;s not going to be a major focus. I don&#8217;t want to teach a new programming language _too_ if I can avoid it. <img src='http://blog.mikael.johanssons.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Damien Guichard</title>
		<link>http://blog.mikael.johanssons.org/archive/2009/07/soliciting-advice/comment-page-1/#comment-167315</link>
		<dc:creator>Damien Guichard</dc:creator>
		<pubDate>Wed, 22 Jul 2009 21:44:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.mikael.johanssons.org/?p=224#comment-167315</guid>
		<description>From a down-to-earth point of view, monoids, functors, catamorphisms, paramorphisms, anamorphisms, (co-)monads and applicative functors are all programmer&#039;s friends. 

Plus they buy you the opportunity to play with &lt;i&gt;Charity&lt;/i&gt; (a categorical programming language) which is fun because its recursion is so &#039;primitive&#039;.

However i agree that from a categorical point of view programming is much like a distraction.</description>
		<content:encoded><![CDATA[<p>From a down-to-earth point of view, monoids, functors, catamorphisms, paramorphisms, anamorphisms, (co-)monads and applicative functors are all programmer&#8217;s friends. </p>
<p>Plus they buy you the opportunity to play with <i>Charity</i> (a categorical programming language) which is fun because its recursion is so &#8216;primitive&#8217;.</p>
<p>However i agree that from a categorical point of view programming is much like a distraction.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

