<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><entry xmlns='http://www.w3.org/2005/Atom' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-7421391.post-114557706469320051</id><published>2006-04-21T08:56:00.000+10:00</published><updated>2006-04-21T09:51:23.750+10:00</updated><title type='text'>Open Recursion: a definition.</title><content type='html'>&lt;p&gt;
I've been asked a couple of times now about my use of "open recursion".  It's covered in some detail by Pierce in "Types and Programming Languages"; I've included the one paragraph definition he gives below.
&lt;blockquote&gt;
&lt;p&gt;
&lt;strong&gt;Open recursion.&lt;/strong&gt; Another handy feature offered by most languages with objects and classes is the ability for one method body to invoke another method of the same object via a special variable called &lt;code&gt;self&lt;/code&gt; or, in some langauges, &lt;code&gt;this&lt;/code&gt;.  The special behavior of &lt;code&gt;self&lt;/code&gt; is that it is &lt;em&gt;late-bound&lt;/em&gt;, allowing a method defined in one class to invoke another method that is defined later, in some subclass of the first.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Types and Programming Lanauges, Benjamin C. Pierce, 2002, MIT Press, pg 227.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7421391-114557706469320051?l=etymon.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etymon.blogspot.com/feeds/114557706469320051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7421391&amp;postID=114557706469320051' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7421391/posts/default/114557706469320051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7421391/posts/default/114557706469320051'/><link rel='alternate' type='text/html' href='http://etymon.blogspot.com/2006/04/open-recursion-definition.html' title='Open Recursion: a definition.'/><author><name>Andrae Muys</name><uri>http://www.blogger.com/profile/04967415260912980895</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06968995227588419577'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry>