The paradigm of containers and self-referenced names
mikeythek at gmail.com
Tue Mar 22 15:01:36 CST 2005
> We need a word for the destination of "put" and "add". I think
> "reference" can work. In other languages folks use LHS, but since the
> LHS is on the right side in these examples, that can be confusing.
generally this is referred to as the "result"
> One of the problems with the paradigm is that the meaning of a
> statement depends not on the statement itself, or the statement and
> declarations of components, but on its context.
Ever hear of C? Howabout Java? In those languages the meaning of a
statement can vary with the types of the arguments, the number of
arguments, or in C's case, where you are in a program. It's not a
flaw, it's part of the Tao. The paradigm carries with it certain
rights and responsibilities, which one needs to understand. That
doesn't make it wrong, any more than polymorphism,
multiple-inheritence, or the ability to walk right off the end of an
array in C is wrong. It just is.
> If a name in an undeclared value or reference context
> is used anywhere in the handler as a reference it is
> a container with an initial value of empty, otherwise
> it is a self-referencing name or string constant.
Actually it would be a string literal, but whatever.
> What good is a paradigm when people don't know how it works?
Thus the Tao blog, and the documentation project. I think that most
of us that have used HC or SuperCard or MetaCard have a pretty good
grasp of the behavior.
> As it is, it is broken.
I just tend to disagree on this point. It appears to work as I would
expect it to, unless I haven't been paying attention to this thread.
<snip/> I'm going to leave the rest alone. It's philosophy at this
point and should be continued in the request blog.
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
and did a little diving.
And God said, "This is good."
More information about the use-livecode