<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-11295132.post4790015581908022633..comments</id><updated>2011-06-01T07:17:38.313-07:00</updated><category term='monad'/><category term='mathematics'/><category term='physics'/><category term='optimisation'/><category term='astronomy'/><category term='self-reference'/><category term='probability'/><category term='comonads'/><category term='haskell'/><category term='types'/><category term='programming'/><category term='quantum'/><title type='text'>Comments on A Neighborhood of Infinity: Purely functional recursive types in Haskell and P...</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.sigfpe.com/feeds/4790015581908022633/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html'/><author><name>sigfpe</name><uri>http://www.blogger.com/profile/08096190433222340957</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://homepage.mac.com/sigfpe/.Pictures/Photo%20Album%20Pictures/2002-12-07%2014.53.40%20-0800/ImageDSC01397_1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11295132.post-2327390826606208744</id><published>2011-05-31T23:24:52.841-07:00</published><updated>2011-05-31T23:24:52.841-07:00</updated><title type='text'>Thanks for this post, it helped me to understandin...</title><content type='html'>Thanks for this post, it helped me to understanding the Empty/Cons referred to in this recent post&lt;br /&gt;&lt;br /&gt;http://apocalisp.wordpress.com/2011/05/30/imperative-vs-functional-programming/&lt;br /&gt;&lt;br /&gt;I&amp;#39;m wondering if the more complex example with the Expr AST is missing something since it still uses the algebraic type. i.e. it isn&amp;#39;t represented simply by an encoding of functions.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/2327390826606208744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/2327390826606208744'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1306909492841#c2327390826606208744' title=''/><author><name>Steven Shaw</name><uri>http://www.blogger.com/profile/06340403723350864929</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://4.bp.blogspot.com/_wao9sHcD_4c/TQwBcT_MmVI/AAAAAAAAAtk/xXXBW-vBEE8/S220/barcelona2007.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1790937037'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-3178972088970357887</id><published>2010-07-19T18:32:55.805-07:00</published><updated>2010-07-19T18:32:55.805-07:00</updated><title type='text'>Any chance you might be able to put in an entry fo...</title><content type='html'>Any chance you might be able to put in an entry for http://rosettacode.org/wiki/Pattern_matching; and http://rosettacode.org/wiki/Proof? Maybe basing it on what has been done for Tcl/Haskel?&lt;br /&gt;&lt;br /&gt;It would be appreciated.&lt;br /&gt;&lt;br /&gt;Thanks.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/3178972088970357887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/3178972088970357887'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1279589575805#c3178972088970357887' title=''/><author><name>Paddy3118</name><uri>http://www.blogger.com/profile/06899509753521482267</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2027446141'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-1666956632141526809</id><published>2009-11-29T19:06:39.191-08:00</published><updated>2009-11-29T19:06:39.191-08:00</updated><title type='text'>sigfpe--

Aaaugh, scary but interesting post!  How...</title><content type='html'>sigfpe--&lt;br /&gt;&lt;br /&gt;Aaaugh, scary but interesting post!  However, the problem discussed there&lt;br /&gt;* isn&amp;#39;t with lambdas per se,&lt;br /&gt;* it&amp;#39;s with a closure (lambda &lt;i&gt;or&lt;/i&gt; def) referring to loop variables in the enclosing function&lt;br /&gt;* so doing the closure with def doesn&amp;#39;t change that situation&lt;br /&gt;* anyway it doesn&amp;#39;t come up in your situation (referring to the enclosing function&amp;#39;s parameters)&lt;br /&gt;&lt;br /&gt;My sense even after that post is that Python&amp;#39;s closures are about as pure or impure as Scheme&amp;#39;s (unless you think of the tail-call memory leak as impurity).&lt;br /&gt;&lt;br /&gt;Apply paranoias sparingly!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/1666956632141526809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/1666956632141526809'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1259550399191#c1666956632141526809' title=''/><author><name>FutureNerd</name><uri>http://www.blogger.com/profile/17103481765366134475</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1844879231'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-6517898903534368590</id><published>2009-11-29T14:36:26.959-08:00</published><updated>2009-11-29T14:36:26.959-08:00</updated><title type='text'>FutureNerd,

Can&amp;#39;t remember why I didn&amp;#39;t u...</title><content type='html'>FutureNerd,&lt;br /&gt;&lt;br /&gt;Can&amp;#39;t remember why I didn&amp;#39;t use lambdas. Probably the sort of paranoia expressed here: http://math.andrej.com/2009/04/09/pythons-lambda-is-broken/</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/6517898903534368590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/6517898903534368590'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1259534186959#c6517898903534368590' title=''/><author><name>sigfpe</name><uri>http://www.blogger.com/profile/08096190433222340957</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://homepage.mac.com/sigfpe/.Pictures/Photo%20Album%20Pictures/2002-12-07%2014.53.40%20-0800/ImageDSC01397_1.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-961546855'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-957866450244527130</id><published>2009-11-29T13:48:43.700-08:00</published><updated>2009-11-29T13:48:43.700-08:00</updated><title type='text'>&amp;quot;&amp;quot;&amp;quot;
(I&amp;#39;m leaving a &lt;i&gt;comment,&lt;...</title><content type='html'>&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;(I&amp;#39;m leaving a &lt;i&gt;comment,&lt;/i&gt; heh.)&lt;br /&gt;&lt;br /&gt;I thought a couple of your examples would have been clearer by first saying&lt;br /&gt;&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;def plus(a,b):&lt;br /&gt;____return a+b&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;&lt;br /&gt;(Wanting Python to have a syntax for that is the kind of pressure that created C++!)&lt;br /&gt;&lt;br /&gt;Funny omission...&lt;br /&gt;&lt;br /&gt;&lt;i&gt;...each constructor is replaced with the appropriate function. Here&amp;#39;s an example:&lt;br /&gt;&lt;br /&gt;Now consider a simple expression type in Haskell:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;...as in, &amp;quot;Wanna see me do it again?&amp;quot; or, &amp;quot;Yes, in Python it&amp;#39;s that simple!&amp;quot;  I do get the idea, though.&lt;br /&gt;&lt;br /&gt;Is there an efficiency, readability or code style reason why you use internal defs with just a return line, instead of lambdas?  I.e., (why) do you prefer&lt;br /&gt;&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;i&gt;&lt;br /&gt;def cons(h,t):&lt;br /&gt;____def _cons(a,b):&lt;br /&gt;________return a(h,t(a,b))&lt;br /&gt;____return _cons&lt;/i&gt;&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;&lt;br /&gt;to&lt;br /&gt;&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;def cons(h,t):&lt;br /&gt;____return lambda a,b: a(h,t(a,b))&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;?&lt;br /&gt;&lt;br /&gt;I wonder whether there&amp;#39;s a compiler somewhere that recognizes nested lambdas as conses or sequential arrays (I infer that Haskell doesn&amp;#39;t?).&lt;br /&gt;&lt;br /&gt;Interesting stuff, I got here from your &amp;quot;Programming with impossible functions.&amp;quot;&lt;br /&gt;&amp;quot;&amp;quot;&amp;quot;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/957866450244527130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/957866450244527130'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1259531323700#c957866450244527130' title=''/><author><name>FutureNerd</name><uri>http://www.blogger.com/profile/17103481765366134475</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1844879231'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-2628910756809651498</id><published>2009-11-29T01:53:17.187-08:00</published><updated>2009-11-29T01:53:17.187-08:00</updated><title type='text'>Minor typo: &amp;quot;Evaluating X, 2 and X+2 at X=2:&amp;...</title><content type='html'>Minor typo: &amp;quot;Evaluating X, 2 and X+2 at X=2:&amp;quot; should be &amp;quot;Evaluating X, 2 and X+2 at X=3&amp;quot;.&lt;br /&gt;&lt;br /&gt;Thanks for the post, I enjoyed it very much.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/2628910756809651498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/2628910756809651498'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1259488397187#c2628910756809651498' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-150330983'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-393736379414453464</id><published>2008-02-11T00:55:00.000-08:00</published><updated>2008-02-11T00:55:00.000-08:00</updated><title type='text'>You say that "Wadler's paper also describes a dual...</title><content type='html'>You say that "Wadler's paper also describes a dual version of this for codata such as streams. But as far as I understand it's not very interesting." I disagree; I think the dual is very interesting! Whereas the inductive version captures &lt;I&gt;algebraic datatypes&lt;/I&gt; as purely functional recursive types, the coinductive version captures &lt;I&gt;abstract datatypes&lt;/I&gt;. I exploit this in my paper &lt;A HREF="http://web.comlab.ox.ac.uk/jeremy.gibbons/publications/#adt" REL="nofollow"&gt;&lt;I&gt;Unfolding Abstract Datatypes&lt;/I&gt;&lt;/A&gt;. (I'd explain here, but the margin is too narrow.)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/393736379414453464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/393736379414453464'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1202720100000#c393736379414453464' title=''/><author><name>Jeremy Gibbons</name><uri>http://web.comlab.ox.ac.uk/jeremy.gibbons/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1158424607'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-5404315802001185343</id><published>2008-02-06T18:14:00.000-08:00</published><updated>2008-02-06T18:14:00.000-08:00</updated><title type='text'>One quick point. If you want to test for an empty ...</title><content type='html'>One quick point. If you want to test for an empty list, it is better to do:&lt;BR/&gt;&lt;BR/&gt;if not l:&lt;BR/&gt;&lt;BR/&gt;instead of&lt;BR/&gt;&lt;BR/&gt;if l==[]:</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/5404315802001185343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/5404315802001185343'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1202350440000#c5404315802001185343' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-383273344'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-8578190877917464452</id><published>2008-02-04T16:31:00.000-08:00</published><updated>2008-02-04T16:31:00.000-08:00</updated><title type='text'>單中杰,&lt;br&gt;&lt;br&gt;In your paper I read&lt;br&gt;&lt;br&gt;&amp;gt; This ...</title><content type='html'>單中杰,&lt;BR/&gt;&lt;BR/&gt;In your paper I read&lt;BR/&gt;&lt;BR/&gt;&gt; This representation is almost the same as in §1.1, only written with lowercase identifiers.&lt;BR/&gt;&lt;BR/&gt;At one point I started writing exactly the same sentence when composing my blog post. I'll have to read the rest of that paper, it seems interesting.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/8578190877917464452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/8578190877917464452'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1202171460000#c8578190877917464452' title=''/><author><name>sigfpe</name><uri>http://www.blogger.com/profile/08096190433222340957</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://homepage.mac.com/sigfpe/.Pictures/Photo%20Album%20Pictures/2002-12-07%2014.53.40%20-0800/ImageDSC01397_1.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-961546855'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-4181496518427162110</id><published>2008-02-04T16:20:00.000-08:00</published><updated>2008-02-04T16:20:00.000-08:00</updated><title type='text'>Mikael,&lt;br&gt;&lt;br&gt;Well there's already a nice descrip...</title><content type='html'>Mikael,&lt;BR/&gt;&lt;BR/&gt;Well there's already a nice description in terms of initial F-algebras but I think I see what you mean.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/4181496518427162110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/4181496518427162110'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1202170800000#c4181496518427162110' title=''/><author><name>sigfpe</name><uri>http://www.blogger.com/profile/08096190433222340957</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://homepage.mac.com/sigfpe/.Pictures/Photo%20Album%20Pictures/2002-12-07%2014.53.40%20-0800/ImageDSC01397_1.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-961546855'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-5282066745810671307</id><published>2008-02-03T01:39:00.000-08:00</published><updated>2008-02-03T01:39:00.000-08:00</updated><title type='text'>Now I -really- want to see (or write) a discussion...</title><content type='html'>Now I -really- want to see (or write) a discussion of recursive data types and generalized folds in the language of operads! What you said a generalized fold is looks to me very much like the construction of a free operads on a set of operations. (and/or possibly representations of such)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/5282066745810671307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/5282066745810671307'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1202031540000#c5282066745810671307' title=''/><author><name>Mikael</name><uri>http://www.blogger.com/profile/00008302080954798496</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1851214380'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-4658616282479604294</id><published>2008-02-02T15:58:00.000-08:00</published><updated>2008-02-02T15:58:00.000-08:00</updated><title type='text'>Good post. I think what's missing is a discussion ...</title><content type='html'>Good post. I think what's missing is a discussion of the connection with lambda calculus, since all you're really describing is a couple of implementations in concrete languages of standard l-c types.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/4658616282479604294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/4658616282479604294'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1201996680000#c4658616282479604294' title=''/><author><name>suppressingfire</name><uri>http://suppressingfire.livejournal.com/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/openid16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1808603735'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-6099984267584065676</id><published>2008-02-02T14:13:00.000-08:00</published><updated>2008-02-02T14:13:00.000-08:00</updated><title type='text'>Indeed, "many things you might naturally want to d...</title><content type='html'>Indeed, "many things you might naturally want to do with an Expr are particularly easy to write using" efold, and it may even be more efficient because you can eliminate tagging overhead.  &lt;A HREF="http://okmij.org/ftp/Computation/tagless-typed.html" REL="nofollow"&gt;Jacques Carette, Oleg Kiselyov, and I have been writing partial evaluators, CPS transformers, and other interpreters in this way, to good effect.&lt;/A&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/6099984267584065676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/4790015581908022633/comments/default/6099984267584065676'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html?showComment=1201990380000#c6099984267584065676' title=''/><author><name>單中杰</name><uri>http://www.blogger.com/profile/08491317087691022866</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2008/02/purely-functional-recursive-types-in.html' ref='tag:blogger.com,1999:blog-11295132.post-4790015581908022633' source='http://www.blogger.com/feeds/11295132/posts/default/4790015581908022633' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1506561500'/></entry></feed>
