Hi,<br><br>Maybe this is not what you want, but just in case:<br>structs can be used as procedures (with the #:prop:procedure property).<br>You can use the attributes of the struct to attach the properties you want.<br><br>

Laurent<br><br><div class="gmail_quote">On Thu, Apr 21, 2011 at 22:55, Eric Tanter <span dir="ltr">&lt;<a href="mailto:etanter@dcc.uchile.cl">etanter@dcc.uchile.cl</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Hi Racketeers,<br>
<br>
I have been using PLT Scheme/Racket for various kinds of language design experiments in the past few years. The different facilities (in particular the possibility to redefine #%app, identifier macros, etc.) are extremely valuable to get working prototypes of wild ideas very quickly. A real joy.<br>


<br>
There is something that keeps popping as a limitation though. Several times, I have faced the need to be able to attach a property to a procedure, and introspect it at some later point. There are already a number of procedure reflective information: procedure-arity, procedure-keywords, etc. (i guess there are several more behind the scene), but it would be useful to be able to extend this to arbitrary info. (encoding this info through artificial keywords is at best ugly, and sometimes simply insufficient)<br>


<br>
Something along the lines of:<br>
(lambda #:prop key val (x) x)<br>
and then have `procedure-properties&#39; as means to retrieve the different properties for introspection.<br>
<br>
In a way, it&#39;s like continuation marks--a general-purpose marking mechanism--, but procedure-centric, instead of control-centric.<br>
<br>
Does it make sense? is it already there? is there a better way to do it?<br>
could it be there? (I know, Christmas is still far down the line, but who knows ;-))<br>
<br>
Thanks,<br>
<br>
-- Éric<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>