<?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.post6189536188959217455..comments</id><updated>2009-11-29T17:04:16.570-08: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: Memoizing Polymorphic Functions with High School A...</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.sigfpe.com/feeds/6189536188959217455/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.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>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11295132.post-6823968636958205746</id><published>2009-11-29T16:57:21.869-08:00</published><updated>2009-11-29T16:57:21.869-08:00</updated><title type='text'>Dear Author blog.sigfpe.com ! 
It you have correct...</title><content type='html'>Dear Author blog.sigfpe.com ! &lt;br /&gt;It you have correctly told :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/6823968636958205746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/6823968636958205746'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html?showComment=1259542641869#c6823968636958205746' 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/2009/11/memoizing-polymorphic-functions-with.html' ref='tag:blogger.com,1999:blog-11295132.post-6189536188959217455' source='http://www.blogger.com/feeds/11295132/posts/default/6189536188959217455' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1818463641'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-9189499170055398917</id><published>2009-11-09T10:46:52.940-08:00</published><updated>2009-11-09T10:46:52.940-08:00</updated><title type='text'>This was great and challenging. I followed the lin...</title><content type='html'>This was great and challenging. I followed the link back to your old post about data and codata and a few more lights turned on upstairs. Kind of like skiing a blue run after a black. Thanks for continuing this blog!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/9189499170055398917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/9189499170055398917'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html?showComment=1257792412940#c9189499170055398917' title=''/><author><name>T_S_</name><uri>http://www.blogger.com/profile/08087102167160417535</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='12546509398450543181'/><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/2009/11/memoizing-polymorphic-functions-with.html' ref='tag:blogger.com,1999:blog-11295132.post-6189536188959217455' source='http://www.blogger.com/feeds/11295132/posts/default/6189536188959217455' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1761310776'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-3060822483612244306</id><published>2009-11-09T10:34:41.672-08:00</published><updated>2009-11-09T10:34:41.672-08:00</updated><title type='text'>ertai,

Thanks for that.

It makes me grumpy when ...</title><content type='html'>ertai,&lt;br /&gt;&lt;br /&gt;Thanks for that.&lt;br /&gt;&lt;br /&gt;It makes me grumpy when the Haskell compiler forces me to implement a function of type voidElim ∷ Void → ∀ a· a when it seems obvious to me that a complete implementation should take zero lines of code. :-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/3060822483612244306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/3060822483612244306'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html?showComment=1257791681672#c3060822483612244306' 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/2009/11/memoizing-polymorphic-functions-with.html' ref='tag:blogger.com,1999:blog-11295132.post-6189536188959217455' source='http://www.blogger.com/feeds/11295132/posts/default/6189536188959217455' 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-8220736771368810101</id><published>2009-11-09T06:43:56.088-08:00</published><updated>2009-11-09T06:43:56.088-08:00</updated><title type='text'>I also think that a n=0 version would help underst...</title><content type='html'>I also think that a n=0 version would help understanding better the solution.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&amp;gt; type T0 f = T f Void                                                         &lt;br /&gt;                                                                               &lt;br /&gt;&amp;gt; voidElim ∷  Void →  ∀ a· a                                                   &lt;br /&gt;&amp;gt; voidElim _ = error &amp;quot;voidElim: impossible&amp;quot;                                    &lt;br /&gt;                                                                               &lt;br /&gt;&amp;gt; memoize0 ∷  Functor f ⇒  (∀ a· [a] →  f a) →  T0 f                           &lt;br /&gt;&amp;gt; memoize0 f = memoize (λ(_ , xs) →  f xs)                                     &lt;br /&gt;                                                                               &lt;br /&gt;&amp;gt; memoize0&amp;#39; ∷  Functor f ⇒  T0 f →  ∀ a· [a] →  f a                            &lt;br /&gt;&amp;gt; memoize0&amp;#39; t xs = memoize&amp;#39; t (voidElim, xs)&lt;br /&gt;&lt;/b&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/8220736771368810101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/8220736771368810101'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html?showComment=1257777836088#c8220736771368810101' title=''/><author><name>ertai</name><uri>http://www.blogger.com/profile/01280276982496105053</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://3.bp.blogspot.com/_q0wHOhzY4E0/SLkGk4t090I/AAAAAAAAAAU/1aqvjXqwxe8/S220/ertai-160x160.png'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html' ref='tag:blogger.com,1999:blog-11295132.post-6189536188959217455' source='http://www.blogger.com/feeds/11295132/posts/default/6189536188959217455' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-525849851'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-3883961212288487171</id><published>2009-11-08T13:10:01.101-08:00</published><updated>2009-11-08T13:10:01.101-08:00</updated><title type='text'>Shin no Noir,

The constraint is missing only beca...</title><content type='html'>Shin no Noir,&lt;br /&gt;&lt;br /&gt;The constraint is missing only because I could accidentally get away with it without the compiler complaining.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/3883961212288487171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/3883961212288487171'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html?showComment=1257714601101#c3883961212288487171' 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/2009/11/memoizing-polymorphic-functions-with.html' ref='tag:blogger.com,1999:blog-11295132.post-6189536188959217455' source='http://www.blogger.com/feeds/11295132/posts/default/6189536188959217455' 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-7415482282497054330</id><published>2009-11-08T12:43:03.541-08:00</published><updated>2009-11-08T12:43:03.541-08:00</updated><title type='text'>Is there a reason why you don&amp;#39;t include the (F...</title><content type='html'>Is there a reason why you don&amp;#39;t include the (Functor f =&amp;gt;) constraint in the type of yoneda? It would make yoneda less general, but on the other hand would make it more symmetric with its inverse yoneda&amp;#39;.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/7415482282497054330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/7415482282497054330'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html?showComment=1257712983541#c7415482282497054330' title=''/><author><name>Shin no Noir</name><uri>http://www.blogger.com/profile/08974372500960094990</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/2009/11/memoizing-polymorphic-functions-with.html' ref='tag:blogger.com,1999:blog-11295132.post-6189536188959217455' source='http://www.blogger.com/feeds/11295132/posts/default/6189536188959217455' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-248776452'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-8059632843961876511</id><published>2009-11-08T07:11:57.793-08:00</published><updated>2009-11-08T07:11:57.793-08:00</updated><title type='text'>Sjoerd,

Maybe I should have said ir more clearly,...</title><content type='html'>Sjoerd,&lt;br /&gt;&lt;br /&gt;Maybe I should have said ir more clearly, but for n=0, (n-&amp;gt;a,[a]) -&amp;gt; f a is the same as [a]. I could add a line to exhibit that isomorphism.&lt;br /&gt;&lt;br /&gt;Or maybe you meant the more philosophical question of &amp;quot;why when looking to memoize [a] -&amp;gt; f a are we led to a whole family of types?&amp;quot;. Which I&amp;#39;m not sure how to answer.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/8059632843961876511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/8059632843961876511'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html?showComment=1257693117793#c8059632843961876511' 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/2009/11/memoizing-polymorphic-functions-with.html' ref='tag:blogger.com,1999:blog-11295132.post-6189536188959217455' source='http://www.blogger.com/feeds/11295132/posts/default/6189536188959217455' 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-9070721085222551371</id><published>2009-11-08T02:47:20.949-08:00</published><updated>2009-11-08T02:47:20.949-08:00</updated><title type='text'>What I don&amp;#39;t understand is that you want to me...</title><content type='html'>What I don&amp;#39;t understand is that you want to memoize forall a. [a] -&amp;gt; f a, and end up with memoization for forall a. (n -&amp;gt; a, [a]) -&amp;gt; f a</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/9070721085222551371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/9070721085222551371'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html?showComment=1257677240949#c9070721085222551371' title=''/><author><name>Sjoerd Visscher</name><uri>http://www.blogger.com/profile/10698430967044536619</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/2009/11/memoizing-polymorphic-functions-with.html' ref='tag:blogger.com,1999:blog-11295132.post-6189536188959217455' source='http://www.blogger.com/feeds/11295132/posts/default/6189536188959217455' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-2093595143'/></entry><entry><id>tag:blogger.com,1999:blog-11295132.post-9118889065034217037</id><published>2009-11-08T01:36:28.414-08:00</published><updated>2009-11-08T01:36:28.414-08:00</updated><title type='text'>Great work! I will still need some time to fully d...</title><content type='html'>Great work! I will still need some time to fully digest this but...&lt;br /&gt;&lt;br /&gt;Just a quick remark, in your definition of Exists:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;data Exists f a = forall a. Exists (f a)&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The type parameter &amp;#39;a&amp;#39; is useless and misleading since it is different&lt;br /&gt;from the forall one. I suggest:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;data Exists f = forall a. Exists (f a)&lt;br /&gt;&lt;/b&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/9118889065034217037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11295132/6189536188959217455/comments/default/9118889065034217037'/><link rel='alternate' type='text/html' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html?showComment=1257672988414#c9118889065034217037' title=''/><author><name>ertai</name><uri>http://www.blogger.com/profile/01280276982496105053</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://3.bp.blogspot.com/_q0wHOhzY4E0/SLkGk4t090I/AAAAAAAAAAU/1aqvjXqwxe8/S220/ertai-160x160.png'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.sigfpe.com/2009/11/memoizing-polymorphic-functions-with.html' ref='tag:blogger.com,1999:blog-11295132.post-6189536188959217455' source='http://www.blogger.com/feeds/11295132/posts/default/6189536188959217455' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-525849851'/></entry></feed>
