>> and prop:procedure is how you make a procedure that can also be something
>> else.

One thing to keep in mind is that there is _some_ overhead. In my
recent experience, applying via prop:procedure took roughly 1.6X the
time as applying a plain procedure. (This with the variant of
prop:procedure where its value is an index to the field in the struct
holding the procedure.)

I don't know how much of the extra time is due to memory reference,
missing the optimizer, and/or other?

For many applications that doesn't matter, and it's worth it to have
`thing` self-evaluate to the info.

If/when it does matter, instead you could use a hashtable on the side,
mapping from the procedure to the info. Of course that way, you need
to use `(lookup thing)` to get the info.
____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to