[gambit-list] {Spam?} what is ## for?

Bradley Lucier lucier at math.purdue.edu
Mon Dec 3 13:28:46 EST 2007


In standard R[45]RS scheme (I don't know about R6RS), a programmer is  
not allowed to begin an identifier with ##; so identifiers beginning  
with ## are used internally, as a Gambit extension, to name  
procedures that the user is not supposed to redefine.

So the definition of cddr might be

(define (##cddr x) (##cdr (##cdr x)))
(define (cddr x) (##cddr x))

so while the user can redefine cdr, that redefinition won't affect  
the definition of cddr, since cddr depends on ##cdr, not cdr.

Brad


On Dec 3, 2007, at 2:49 AM, Li Xiangyang wrote:

>
> I see a lot of ## included in library file, such as ##define-macro,  
> ##include, what does that mean? I can't find
> any explanation in documents.
>
> thanks!
>
> Howard
>
> Discover the new Windows Vista Learn more!
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20071203/6a3dfa89/attachment.htm>


More information about the Gambit-list mailing list