[plt-scheme] apply syntactically bound (was RE: [plt-bug] all/10959: namespace-variable-valuecannot find 'apply' in base-namespace)

From: Jos Koot (jos.koot at telefonica.net)
Date: Fri Jun 4 12:36:28 EDT 2010

That may very well be the case. 'apply' in the operator position of an
expression like (apply bla bla bla ...) being expanded as by a transformer
and in other positions being expanded to something that evaluates to a
procedure. If this is the case, I think this should be added to the docs.
Thanks, Jos


> -----Original Message-----
> From: carl.eastlund at gmail.com [mailto:carl.eastlund at gmail.com] On Behalf
> Of Carl Eastlund
> Sent: 04 June 2010 18:28
> To: Jos Koot
> Cc: Matthew Flatt; plt-scheme at list.cs.brown.edu
> Subject: Re: [plt-scheme] apply syntactically bound (was RE: [plt-bug]
> all/10959: namespace-variable-valuecannot find 'apply' in base-namespace)
> 
> Okay, it might be a macro, but it can still be an identifier macro
> that always expands into a value, even when not used in application
> position.  That is, for instance, how every contracted module export
> works.
> 
> Carl Eastlund
> 
> On Fri, Jun 4, 2010 at 12:24 PM, Jos Koot <jos.koot at telefonica.net> wrote:
> > I just learned that in #lang racket version 5.0.0.1 symbol 'apply' is
> > syntactically bound. In an uncorrupted base-namespace it has no variable
> > binding.
> > See http://bugs.racket-lang.org/query/?cmd=view&pr=10959
> > Jos
> >
> >> -----Original Message-----
> >> From: carl.eastlund at gmail.com [mailto:carl.eastlund at gmail.com] On
> Behalf
> >> Of Carl Eastlund
> >> Sent: 04 June 2010 18:14
> >> To: Jos Koot
> >> Cc: Matthew Flatt; plt-scheme at list.cs.brown.edu
> >> Subject: Re: [plt-scheme] apply syntactically bound (was RE: [plt-bug]
> >> all/10959: namespace-variable-valuecannot find 'apply' in base-
> namespace)
> >>
> >> On Fri, Jun 4, 2010 at 11:58 AM, Jos Koot <jos.koot at telefonica.net>
> wrote:
> >> > Strange:
> >> >
> >> >
> >> >
> >> > #lang racket ; version 5.0.0.1
> >> >
> >> > (define x '(1 2 3))
> >> >
> >> > (apply apply list (list x)) ; -> (1 2 3)
> >> >
> >> >
> >> >
> >> > where apply seems to accept the syntactically bound keyword apply,
> >> although
> >> > the docs say that apply should have the value of a procedure. This
> >> confuses
> >> > me.
> >> >
> >> > Thanks, Jos
> >>
> >> Jos, apply is a procedure, not a macro, so there is no problem with
> >> passing it to itself.
> >>
> >> --Carl





Posted on the users mailing list.