Thanks for the help. I shall read through AMOP in more detail and see if I can get some hints from that.<div>  -Patrick<br><br><div class="gmail_quote">On Wed, Feb 16, 2011 at 11:25 PM, Hendrik Boom <span dir="ltr">&lt;<a href="mailto:hendrik@topoi.pooq.com">hendrik@topoi.pooq.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5">On Wed, Feb 16, 2011 at 11:07:49PM -0500, Patrick Li wrote:<br>
&gt; Hello everyone,<br>
&gt;<br>
&gt; I&#39;m writing a toy Scheme-ish interpreter for fun, and am trying to add some<br>
&gt; Smalltalk flavor to my Scheme system. I&#39;m running into a bootstrapping<br>
&gt; problem though, and would like to ask someone for a nudge in the right<br>
&gt; direction.<br>
&gt;<br>
&gt; (1) I want symbols to be represented as Functions.<br>
&gt; ie. I want to be able to do this:<br>
&gt; (&#39;my-symbol &#39;length) returns 9<br>
&gt; (&#39;my-symbol &#39;equals &#39;my-symbol2) returns false<br>
&gt;<br>
&gt; (2) I want symbols to be created by calling the function SYMBOL:<br>
&gt; (SYMBOL &#39;new &lt;internal-symbol-representation&gt;) returns a new function<br>
&gt; representing a symbol<br>
&gt;<br>
&gt; (3) I want users to be able to override the built-in SYMBOL function.<br>
&gt; (define SYMBOL (lambda args .... new symbol definition ....))<br>
&gt;<br>
&gt; I can&#39;t seem to write a system like this without falling into an infinite<br>
&gt; loop somewhere.<br>
&gt;<br>
&gt; For example this is the last one that I ran into:<br>
&gt;<br>
&gt; i. (quote asdf) is a special form that should create a symbol by calling<br>
&gt; (SYMBOL &#39;new &lt;internal-object-which-represents-asdf&gt;)<br>
&gt;<br>
&gt; ii. But doing that requires creating the &#39;new symbol<br>
&gt;<br>
&gt; iii. Creating the &#39;new symbol requires calling<br>
&gt; (SYMBOL &#39;new &lt;internal-object-which-represents-new&gt;)<br>
&gt;<br>
&gt; iv. But doing that requires creating the &#39;new symbol<br>
&gt;<br>
&gt; and so on.<br>
&gt;<br>
&gt;<br>
&gt; I apologize if this seems unclear. Please ask me for clarifications if I<br>
&gt; didn&#39;t explain myself properly. I have been stuck on this sort of problem<br>
&gt; for a while now, and can&#39;t wrap my head around it.<br>
&gt;   -Patrick<br>
<br>
</div></div>When you find you need to have implemented something in order to<br>
implement itself within your sustem, it&#39;s a strong clue that it has to<br>
be built into the system, rather than built on top of it..  In this<br>
case, the symbol &#39;new, will have to be in the system to stat with, i.e.,<br>
written in whatever othe system you bootstrap from.<br>
<br>
-- hendrik<br>
_________________________________________________<br>
  For list-related administrative tasks:<br>
  <a href="http://lists.racket-lang.org/listinfo/users" target="_blank">http://lists.racket-lang.org/listinfo/users</a><br>
</blockquote></div><br></div>