<div dir="ltr">Yes, I believe that the name of a structure defined by "struct" is bound at syntax-time to a value that implements both prop:procedure, so that it can expand to a use of the constructor when used in an expression, and prop:struct-info so that it can be use to look up static information when passed to relevant macros.<br>
</div><div class="gmail_extra"><br clear="all"><div>Carl Eastlund</div>
<br><br><div class="gmail_quote">On Sun, Jan 19, 2014 at 11:00 PM, Scott Klarenbach <span dir="ltr"><<a href="mailto:scott@pointyhat.ca" target="_blank">scott@pointyhat.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">How is it that the definition of (struct my-name (x y)) can bind <i>my-name</i> both as a #<procedure:my-name> at runtime and a transformer-binding <i>my-name</i> that at compile time (via syntax-local-value) produces #<procedure:self-ctor-checked-struct-info>.?<div>
<br></div><div>Or, put another way, how can I define a transformer <i>my-fn</i> that produces syntax, but that also exposes hidden meta-data under the same binding to other macros that might wish to know about the binding at compile time?<br>
<div><br></div><div>I'm specifically wondering how the overloading works. Is it some clever use of prop:procedure?</div><div><br></div><div>Thanks.</div><div><div><br></div>-- <br>Talk to you soon,<br><br>Scott Klarenbach<br>
<br>PointyHat Software Corp.<br><a href="http://www.pointyhat.ca" target="_blank">www.pointyhat.ca</a><br>p <a href="tel:604-568-4280" value="+16045684280" target="_blank">604-568-4280</a><br>e <a href="mailto:scott@pointyhat.ca" target="_blank">scott@pointyhat.ca</a><br>
<span style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">200-1575 W. Georgia</span><br>
Vancouver, BC <span style="color:rgb(34,34,34);font-size:13px;font-family:arial,sans-serif">V6G2V3</span><br><br>_______________________________________<br>To iterate is human; to recur, divine
</div></div></div>
<br>____________________<br>
Racket Users list:<br>
<a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br></blockquote></div><br></div>