<div dir="ltr"><div style>I wouldn&#39;t worry too much about make-object and instantiate since they exist essentially only for backwards compatibility. </div><div style><br></div><div style>Robby</div> </div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Sun, Feb 3, 2013 at 10:00 AM, Asumu Takikawa <span dir="ltr">&lt;<a href="mailto:asumu@ccs.neu.edu" target="_blank">asumu@ccs.neu.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 2013-02-03 10:50:31 -0500, Tony Garnock-Jones wrote:<br>
&gt; How about<br>
&gt;<br>
&gt; (inst c% 1 2 3)<br>
&gt; (inst c% #:x 1 #:y 2)<br>
&gt; (inst c% 1 2 #:z 3)<br>
&gt; ;; not sure what to do about the last one<br>
<br>
</div>I considered something like this, where the keyword&#39;s symbolic name is<br>
just used for the corresponding init arg (so it&#39;s backwards compatible)<br>
and you could write<br>
<br>
  (class object%<br>
    (super-new)<br>
    (init-field #:x 5))<br>
<br>
for example.<br>
<br>
It seems like it could just be more of a mess, though, since it then<br>
offers a fourth way to instantiate classes. It would be nicely<br>
compatible with function syntax though.<br>
<br>
Matthias also suggested in passing a `new` that uses a special marker:<br>
<br>
  (new c% [z 3] % 1 2)<br>
  (new c% % 1 2 3)<br>
<br>
to make it unambiguous. I&#39;m not sure if this has enough advantages over<br>
`instantiate` (aside from the name) though.<br>
<br>
Cheers,<br>
Asumu<br>
<div class="HOEnZb"><div class="h5">_________________________<br>
  Racket Developers list:<br>
  <a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
</div></div></blockquote></div><br></div>