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@iro.umontreal.ca
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list