[racket] Fwd: Rationale behind missing string-trim

From: Laurent (laurent.orseau at gmail.com)
Date: Thu May 10 02:41:07 EDT 2012

Hi Chad,

Yes, it is redundant. See : http://docs.racket-lang.org/guide/modules.html

Laurent

On Wed, May 9, 2012 at 11:28 PM, Danny Yoo <dyoo at hashcollision.org> wrote:

> [forwarding to racket-users]
>
>
> ---------- Forwarded message ----------
> From: Chad Albers <calbers at neomantic.com>
> Date: Wed, May 9, 2012 at 2:22 PM
> Subject: Re: [racket] Rationale behind missing string-trim
> To: Danny Yoo <dyoo at hashcollision.org>
>
>
> Happy to help you guys identify a bug.  On a side note, that's not
> really relevant to this thread,  I was wondering about your statement
> about #lang racket.
>
> I had assume that you just add #lang racket, if you're writing a
> racket script, sort of like the hash bang syntax of a shell script.
> Is that a correct assumption?  Related, the code I'm writing is
> actually in a module I'm creating, and I've used this to source the
> racket language:
>
> (module rig racket
>
>   (require racket/base
>        (for-syntax racket/base
>                racket/syntax))
>
> Should I have used #lang racket?  is racket/base redundant, since I
> have it in the module definition?  Thanks for your help, if you can
> answer these questions for me.
>
> Chad
>
> --
> Chad Albers
>
>
>
>
> On Wed, May 9, 2012 at 1:45 PM, Danny Yoo <dyoo at hashcollision.org> wrote:
> >
> > On Wed, May 9, 2012 at 1:23 PM, Chad Albers <calbers at neomantic.com>
> wrote:
> > > If my require reads as follows
> > >
> > > (require racket/base
> > >            srfi/13
> > >        (for-syntax racket/base
> > >                racket/syntax))
> > >
> > > I get the following error message:
> > >
> > > module: identifier already imported from: racket at: string-upcase in:
> > > srfi/13
> > >
> >
> >
> > Huh!  That looks like the error reporting is misattributing the source
> > of the conflict.  I'll send a bug report.
> >
> > The error is highlighting the "racket" in the #lang line and srfi/13,
> > but the true source of the conflict's really between the exports of
> > racket/base and srfi/13.  For demonstration, try:
> >
> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> > #lang racket
> > (require (only-in racket/base string-upcase)
> >         srfi/13)
> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> >
> > vs:
> >
> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> > #lang racket
> > (require (only-in racket/base)
> >         srfi/13)
> > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> >
> > In the first,  we tell Racket o use both the string-upcase function in
> > racket/base, as well as all the exports of srfi/13.  Since both
> > requires provide a string-upcase function, there's a conflict, which
> > the DrRacket environment reports.
> >
> > In the second, we mask out all the exports from racket/base.  So the
> > exports of srfi/13 can otherwise shadow everything else without
> > complaint.
> >
> >
> >
> > Side note: the big language of "#lang racket" provides everything in
> > racket/base, so the (require racket/base) is actually redundant.  You
> > can write:
> >
> >     #lang racket
> >     (require srfi/13)
>
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20120510/ceef61c6/attachment.html>

Posted on the users mailing list.