[plt-dev] some Racket proposals & implementation
The current `define-struct' is among very few `define-' forms that
binds names not mentioned directly in the form. In that sense, it's
more like `require' or `open-package', so that's why `struct' seems
like a sensible name to me.
In the list below, I think `define-values/invoke-unit' is the only
other one that binds names not mentioned on the form, and it has always
bugged me. I think it would be better with a non-`define' name, too.
Maybe an `open' convention would be appropriate, though probably we
haven't had enough things like that for the convention to be
worthwhile.
At Tue, 6 Apr 2010 14:22:26 -0400, Sam Tobin-Hochstadt wrote:
> On Tue, Apr 6, 2010 at 2:00 PM, Matthias Felleisen <matthias at ccs.neu.edu>
> wrote:
> > Can we inspect all define- names in our base and consider deleting the
> > define- part? Thanks -- Matthias
>
> I thoroughly agree with Carl about this being a bad idea.
>
> With that said, here's the list:
>
> core definition forms:
> define-values
> define-syntaxes
> define-values-for-syntax
> define
> define-for-syntax
> define-syntax
>
> versions of define-struct:
> define-contract-struct
> define-struct
> define-struct/derived
> define-struct/contract
>
> class forms:
> define/augment-final
> define/override
> define/private
> define/public
> define/augride
> define/overment
> define/pubment
> define/override-final
> define/public-final
> define/augment
>
> unit definition forms:
> define-compound-unit
> define-unit/s
> define-unit-binding
> define-unit/contract
> define-unit/new-import-export
> define-unit-from-context
> define-compound-unit/infer
> define-unit
> define-signature
>
> things that have to bind static info (like `define-struct'):
> define-member-name
> define-local-member-name
> define-serializable-class*
> define-serializable-class
> define-match-expander
> define-signature-form
> define-namespace-anchor
> define-sequence-syntax
> define-opt/c
>
> macros over existing definition forms:
> define-values/invoke-unit
> define-syntax-rule
> define-values/invoke-unit/infer
> define/contract
> --
> sam th
> samth at ccs.neu.edu
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-dev