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