[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: table insertion [was: Lua 5.1 (work2) now available]
- From: "André Carregal" <carregal@...>
- Date: Thu, 4 Nov 2004 15:16:49 -0300
I like the use of a simple operator, but I'm also a bit unconfortable with the "*" choice. In my opinion it gets too close to math operations.
May I ask what would be of the corresponding "*" metamethod? Assuming A and B were proxy tables with "__mul" handlers, what would "A*B" mean? A syntax error? A call to the handler?
Rici's choice of "#" is indeed interesting. The grid like format of # could also serve as a hint of it's use as a dimensional operator, even in situations such as
x, y = #world
where "world" would be a two dimensional array with x * y (x times y) elements.
Concerning the use of the operator to strings and other types, maybe that could be solved with a "__dim" (from dimensions) metamethod?
Remember, when it comes to operators "size doesn't matter, it is the metamethod that counts"... :o)
On Thu, 04 Nov 2004 14:52:16 -0200, Roberto Ierusalimschy <firstname.lastname@example.org> escreveu:
> De: Roberto Ierusalimschy <email@example.com>
> Data: Thu, 04 Nov 2004 14:52:16 -0200
> Para: Lua list <firstname.lastname@example.org>
> Assunto: Re: table insertion [was: Lua 5.1 (work2) now available]
> > Whatever operator is used to return the "length" of a table, it would
> > be nice if it also could return the length of a string.
> > "*" does not strike me as intuitive for an operator yielding the length
> > of a table. "#" would make more sense to me, but see below.
> We thought about '#' first. But '*' is smaller :)
> > Any background, why '*' was regarded best..?
> It is a common prefix operator; the character is already used in Lua;
> and some other languages use it as a length operator (e.g., Icon uses it
> as string length operator). And it is smaller than '#' :)
> -- Roberto