Abdulaziz Ghuloum <aghuloum_at_cs.indiana.edu> writes:
> Provide a way of defining nongenerative records without having to
> specify a specific <uid>. The macro expander can generate the <uid>
> for me if I don't care about what the <uid> is. I recommend using
> (nongenerative #t) to mean just that: a nongenerative record
> definition. (nongenerative <uid>) still means a nongenerative
> record with the specific <uid>.
While this is intruiging, there are some questions in corner cases.
I'm not really an expert on generativity, so please excuse me if any
of the following are too stupid:
- If macros expand into a record-type definition with (nongenerative
#t), do I get a new record type every time? (I'm assuming yes.)
- If I `eval' the same form (up to eq?) containing a record-type
definition, do I get a new record type every time? (I'm also
assuming yes.)
While the answers may seem obvious enough when thinking about the
expansion process, they may be less obvious when actually using
`define-record-type' casually, for example by doing simple abstraction
using macros.
I'm also a bit worried about the fact that, while the current
explicit-naming layer is fully implementable using `syntax-rules',
this addition would (I think) destroy that property. I know you don't
care about this, but others may.
--
Cheers =8-} Mike
Friede, V?lkerverst?ndigung und ?berhaupt blabla
Received on Sun Nov 26 2006 - 08:25:46 UTC