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