{"id":335,"date":"2012-09-13T05:00:25","date_gmt":"2012-09-13T12:00:25","guid":{"rendered":"http:\/\/zackmdavis.net\/blog\/?p=335"},"modified":"2012-09-11T22:05:25","modified_gmt":"2012-09-12T05:05:25","slug":"recursion-is-boring","status":"publish","type":"post","link":"http:\/\/zackmdavis.net\/blog\/2012\/09\/recursion-is-boring\/","title":{"rendered":"Recursion Is Boring"},"content":{"rendered":"<p>What the utter novice finds brilliant and fascinating, the slightly-more-experienced novice finds obvious and boring.<\/p>\n<p>When you're trying to think of cool things to do with a system, one of the obvious things to try is to abuse self-reference for all the world as if you were Douglas fucking Hofstadter&mdash;but it's not cool, precisely because it is so obvious, and you're not Douglas Hofstadter.<\/p>\n<p>Once I made a Git repository and a Mercurial repository living in the same directory, tracking each other endlessly, one going out of date the moment you committed to the other ...<\/p>\n<p>But that's not interesting.<\/p>\n<p>You can run Emacs inside a terminal, and you can run a terminal inside Emacs&mdash;in fact, you can run two (<em>M-x term<\/em>, <em>M-x ansi-term<\/em>). Therefore you can run two instances of Emacs within Emacs. Each of those Emacsen could run some natural number of other nested Emacsen, and therefore (to a certain perverse sort of mind) could be said to <em>represent<\/em> that natural number, which I presume could be determined programmatically (via recursion). <a href=\"http:\/\/en.wikipedia.org\/wiki\/Counter_machine#Two-counter_machines_are_Turing_equivalent_.28with_a_caveat.29\">Two-counter machines are Turing-complete<\/a>. So, in principle, if you didn't run out of memory, you could build a computer out of instances of Emacs running on your computer ...<\/p>\n<p>But that's boring.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What the utter novice finds brilliant and fascinating, the slightly-more-experienced novice finds obvious and boring. When you're trying to think of cool things to do with a system, one of the obvious things to try is to abuse self-reference for &hellip; <a href=\"http:\/\/zackmdavis.net\/blog\/2012\/09\/recursion-is-boring\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[20],"tags":[40,39],"_links":{"self":[{"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/posts\/335"}],"collection":[{"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/comments?post=335"}],"version-history":[{"count":12,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/posts\/335\/revisions"}],"predecessor-version":[{"id":363,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/posts\/335\/revisions\/363"}],"wp:attachment":[{"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/media?parent=335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/categories?post=335"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/zackmdavis.net\/blog\/wp-json\/wp\/v2\/tags?post=335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}