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

From: Carl Eastlund (cce at ccs.neu.edu)
Date: Fri Jun 4 12:27:38 EDT 2010

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.