At Wed, 09 Oct 2013 22:34:08 -0400 (EDT), Galler wrote:
> But, is there a better way to prevent re-defining identifiers with 
> namespace-level binding?
> 
> Can I parameterize the namespace to preventĀ  re-definition of 
> namespace-level variables? Perhaps using code-inspectors?

I think that the only reflective operation currently for making
top-level definitions constant is `namespace-require/constant`:

 > (module m racket/base (define x 7) (provide x))
 > (namespace-require/constant ''m)
 > x
 7
 > (define x 8)
 define-values: assignment disallowed;
  cannot change constant
   constant: x

I don't see any obstacle to adding a more fine-grained reflective
operation, such as `namespace-set-variable-constant!`. Would that be
useful?

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to