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

Re: Dylan Constants

>From: Bob Kerns <rwk@crl.dec.com>
>I'm not sure what you think #define does, or what you think
>DEFINE does, or what bit of the semantics you're comparing,
>but in my ontology this doesn't compute...

>From: dyer@eagle.sharebase.com (Scot Dyer)
>What?!  I don't know about %REPLACE, but #define is at a completely 
>level than the rest of C's syntax (the pre-processor), but Dylan's define 
>are just forms...

Thank you both for the clarification. My comment was SIMPLY an 
observation that if the designers change Dylan's DEFINE to mean "define 
read-only constant", it will be closer to one of the two primary uses of the 
C preprocessor's #define directive.

I am aware of the differences between DEFINE and #define, would never
advocate a Dylan version of cpp and think #define is a completely terrible
way of defining constants compared to DEFINE or DEFCONSTANT in CL. So did
the ANSI C committee, since the "const" directive in ANSI C can be used to
define a  typed, lexically scoped constant. So my response is "yes I
completely agree," and "you are preaching to the choir."

However, there is still a point that I feel is worth making. I believe the 
following statement (page 15) is crucial to Dylan's success:

	Dylan is not intended primarily for the Lisp community. The real 
	target audience of Dylan is application developers now using 
	languages such as C, C++ and Pascal...

If this is truly the target audience, then I can assure you that many of
these individuals are not concerned with "ontology". They define constants
with #define (for the most part), and while they may not appreciate the vast 
difference between #define and DEFINE (yet), they will appreciate the fact
that the only difference is to "drop the '#' and put parens around it."

This is just one microstep in the direction of achieving Dylan's goal
(mine too).


Rich Duncan                                  Internet: duncan@bdsw.com
Black Diamond Software, Inc.               Compuserve: 75540,2532
127 Wilton Road East                            Phone: (203)438-3050
Ridgefield, CT 06877                              Fax: (203)438-1447