<?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-7376220592903881040.post3599296679723514905..comments</id><updated>2012-01-01T04:57:10.061+05:30</updated><category term='msvc'/><category term='computer science'/><category term='gsoc'/><category term='mozmill'/><category term='TV'/><category term='ssd'/><category term='javascript'/><category term='birthday'/><category term='icons'/><category term='xpconnect'/><category term='apple'/><category term='build system'/><category term='fonts'/><category term='os x'/><category term='games'/><category term='music'/><category term='advertising'/><category term='open source'/><category term='console2'/><category term='xul'/><category term='patches'/><category term='mozconfig'/><category term='taskbar'/><category term='C#'/><category term='thought-provoking'/><category term='android'/><category term='git'/><category term='ahci'/><category term='todo'/><category term='mathematics'/><category term='windows'/><category term='mozilla'/><category term='programming languages'/><category term='iit'/><category term='recursion'/><category term='oz'/><title type='text'>Comments on defunct: So, what *is* recursion?</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://monogatari.doukut.su/feeds/3599296679723514905/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7376220592903881040/3599296679723514905/comments/default'/><link rel='alternate' type='text/html' href='http://monogatari.doukut.su/2011/12/so-what-is-recursion.html'/><author><name>Sid</name><uri>http://www.blogger.com/profile/01278191091270098950</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><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7376220592903881040.post-5980006764809617713</id><published>2012-01-01T04:57:10.061+05:30</published><updated>2012-01-01T04:57:10.061+05:30</updated><title type='text'>That distinction between algorithms and implementa...</title><content type='html'>That distinction between algorithms and implementations is actually a good one. I&amp;#39;ve never thought of it that way, and I guess the word &amp;quot;computation&amp;quot; hides the difference.&lt;br /&gt;&lt;br /&gt;Your point about stack space being independent of input size not being equivalent to it being constant is not something I follow. Assuming tail call optimization, I don&amp;#39;t see why your program wouldn&amp;#39;t take constant stack space (if x is arbitrary-precision then presumably the stack would only have a reference to it).</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7376220592903881040/3599296679723514905/comments/default/5980006764809617713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7376220592903881040/3599296679723514905/comments/default/5980006764809617713'/><link rel='alternate' type='text/html' href='http://monogatari.doukut.su/2011/12/so-what-is-recursion.html?showComment=1325374030061#c5980006764809617713' title=''/><author><name>Sid</name><uri>http://www.blogger.com/profile/01278191091270098950</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://monogatari.doukut.su/2011/12/so-what-is-recursion.html' ref='tag:blogger.com,1999:blog-7376220592903881040.post-3599296679723514905' source='http://www.blogger.com/feeds/7376220592903881040/posts/default/3599296679723514905' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1039417261'/></entry><entry><id>tag:blogger.com,1999:blog-7376220592903881040.post-1373980498633069225</id><published>2011-12-31T01:26:47.980+05:30</published><updated>2011-12-31T01:26:47.980+05:30</updated><title type='text'>I&amp;#39;ve always thought of tail-call optimization ...</title><content type='html'>I&amp;#39;ve always thought of tail-call optimization as a mechanism to convert a recursive *algorithm* into an iterative *implementation*.&lt;br /&gt;&lt;br /&gt;I guess there are fundamentally unoptimizable recursive algorithms, recursive algorithms which are optimizable via tail call elimination, and recursive algorithms which are or are not optimizable to constant stack space in language X version Y.&lt;br /&gt;&lt;br /&gt;Then there are iterative implementations and recursive implementations, by which I mean implementations that use stack space that is constant or not.&lt;br /&gt;&lt;br /&gt;Is that equivalent to the amount of stack space being independent of the input size? I suppose not -- I would say a straightforward implementation of fun f(x) = rand() &amp;gt; 0.5 ? x : f(x*2) would be described as recursive, not iterative.&lt;br /&gt;&lt;br /&gt;Note that language X could legally translate that to something similar to x &amp;lt;&amp;lt; rand(sizeof(int)), which would almost certainly produce an iterative or at least non-recursive implementation.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7376220592903881040/3599296679723514905/comments/default/1373980498633069225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7376220592903881040/3599296679723514905/comments/default/1373980498633069225'/><link rel='alternate' type='text/html' href='http://monogatari.doukut.su/2011/12/so-what-is-recursion.html?showComment=1325275007980#c1373980498633069225' title=''/><author><name>Steve Fink</name><uri>http://www.blogger.com/profile/14737660026751057110</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://monogatari.doukut.su/2011/12/so-what-is-recursion.html' ref='tag:blogger.com,1999:blog-7376220592903881040.post-3599296679723514905' source='http://www.blogger.com/feeds/7376220592903881040/posts/default/3599296679723514905' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-253958273'/></entry></feed>
