On 16/06/2011 3.48, David Manura wrote:
On Wed, Jun 15, 2011 at 9:42 PM, Xavier Wang<weasley.wx@gmail.com> wrote:
The length of a table t is only defined if the table is a sequence,
that is,
all its numeric keys comprise the set {1..n} for some integer n.
is that mean, a empty table ({}) has no length defined?
Maybe say "non-negative integer n". IMO, {1..0} == {}.
Maybe it's because I'm not a native english speaker but I find the
wording " ... all its numeric keys comprise the set {1..n} for some
integer n." a little ambiguous.
The point here is the verb "to comprise". According to Oxford Advanced
Learner's Dictionary it may have these two complementary meanings:
"(a) to have sb/sth as parts or members; to be composed of sb/sth"
"(b) to be the parts or members that form sth"
It warns that (b) is less used, but since here we are talking about
computer language specifications that will be read by people all around
the world, with different education, mother language and computer
skills, maybe it would be good to change that verb.
I double checked with Webster's New World Dictionary and it gives three
meaning:
1. to include; to contain
2. to consists of; to be composed of
3. to make up; to form
as a synonym cites "include", so the actual wording might be really
ambiguous if one gets it wrong.
I suggest rewriting it as:
" ... all its numeric keys consists of the set {1..n} for some integer n."
but a native English speaker is very welcome to give a better suggestion!
-- Lorenzo