The paradigm of containers and self-referenced names
Dar Scott
dsc at swcp.com
Wed Mar 23 11:37:44 EST 2005
On Mar 23, 2005, at 8:50 AM, Frank D. Engel, Jr. wrote:
>> No, in C the meaning of a statement depends only on declarations in
>> the context and its location.
>
> Oh?
>
> #define myFunc(x, y) ((sizeof(x) > sizeof(y)) ? ((x) + (y)) : ((x) *
> (y)))
>
>
> Now we have what appears to be a function, but which is dependent on
> the data types of the arguments. This is in plain, ordinary C. Place
> this in a header file, and given only the body of a C program which
> uses it, we get the same level of confusion.
Hmmm.
Well, not the same level of confusion.
The meaning of a name in Revolution--container or literal--depends on
its usage beyond a particular instance. The meaning of an instance of
myFunc() depends only on the macro definition, its particular usage,
and the location of each. On the other hand, the meaning of a name in
Revolution depends on some indefinite number of statements that also
use the name in that handler.
Very few can articulate that dependency. I have to go look it up in my
notes. I use a language subset, so it is not critical to my work, but
if I was reviewing another's source, I might have to look that up.
Even then, because the dependency is not simple, I wouldn't be
completely sure. And besides, some bug fixes might have changed that.
Dar
--
**********************************************
DSC (Dar Scott Consulting & Dar's Lab)
http://www.swcp.com/dsc/
Programming Services and Software
**********************************************
More information about the use-livecode
mailing list