On Mon, Sep 14, 2009 at 5:50 PM, Eli Barzilay <[email protected]> wrote:
>
> As you say below, it isn't a *barrier*,
>
>> The abstraction `barrier' in the CL package system is more of
>> an abstraction `speed bump', but it isn't absent altogether.
>
> but a speed bump -- one that everybody flies over.  (At least I've
> never seen a code walker or a reader that prohibited these things, but
> I did see code that does use `::'s.)

It's as much of a barrier as this:
(define (make-person name ssn) (cons name ssn))
(define person-name car)
(define person-ssn cdr)

One place I worked it was policy that any use of '::' was *highly* discouraged
and only allowed under exceptional circumstances.  We enforced it via
code reviews.  We also had emacs font-lock detect it and display it in
bright red.

As for defining your own language, depending on how much effort
you want to put in, you can do some radical surgery to the package system
and make things like CL:IF be pretty much impossible to get at.  I did this
at ChangeSafe in order to replace the standard definition of COND to be
one that required an `else' clause.


-- 
~jrm

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to