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