[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Can someone sell Lua 5.2.0 to me please ?
- From: Rebel Neurofog <rebelneurofog@...>
- Date: Sun, 18 Dec 2011 23:54:08 +0300
On Mon, Dec 19, 2011 at 12:29 AM, Matthew Frazier
<leafstormrush@gmail.com> wrote:
> On Dec 18, 2011, at 14:22 , Rebel Neurofog wrote:
>
>>> 4) Add the convenience construt of x += 123 (and other similar
>>> operators)
>>
>> I would hate Lua for that since there's no such semantics in Lua.
>> And syntax have to reflex semantics.
>>
>> In Python you may write str1 += "Something else\n" and
>> wonder "Why the hell the script is so terribly slow?"
>> '+=' is supposed to mean addition to existing memory block.
>> But Python is similar to Lua about that: it constructs a new string.
>> So Python isn't honest with me. I hope Lua won't ever be like that.
>
> No, "a += b" simply means "a = a + b." That's it. So if "a + b" is slow, "a += b" is also going to be slow. If anything, Python's implementation is wrong because it *doesn't* strictly enforce that relationship, by providing special methods for += and the like. An "append" operation would be something more like Ruby's <<.
>
> Thanks,
> Matthew Frazier
> http://leafstorm.us/
>
>
>
I disagree. Although C++ isn't a language of my love it has great
operator concept.
operator+= increases value IN-PLACE. So you just can't += immutable
(by design) object.
Same thing with strings: you may optimize string growing by reserving 2^N bytes
(where 2^(N -1) < real_size <= 2^N) on each reallocation.
So API can and should give a programmer an idea about what's inside.