[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Comments on Dylan



Oops... I left one out.

(10) Change: Make the reader case sensitive, but continue to use case
insensitive comparisons for variable names (since the Dylan designers
seem to like that style).  Introduce a new predicate "variable-id?" to
handle case insensitive comparisons of symbols.  The following code
shows how this would work:

    (bind ((fuBar 3)
	   (FuBar 4))
	  (print (list 'fuBar 'FuBar fuBar FuBar
                       (id? 'fuBar 'FuBar)
                       (variable-id? 'fuBar 'FuBar))))
    =>
    (fuBar FuBar 4 4 #f #t)

The "variable-id?" function can be implemented as a constant time
operation by having each symbol contain a pointer to a cannonical
representation.

The justification for this change is to let symbols as DATA be case
sensitive, while retaining case insensitive comparisons for variable
names.

Disclaimer #1: symbol case is a fundamentally religious issue.

Disclaimer #2: my way is the only way.

-- Jim Mayer
                                        Phone: (716) 422-9407
Webster Research Center                 Intelnet phone: 8*222-9407
Xerox Corporation                       Internet Email: mayer@wrc.xerox.com
800 Phillips Road, 0128-29E             XNS Email: James L Mayer:Wbst128:xerox
Webster, New York 14580                 Facsimile: (716) 265-7133