[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: metatables for strings?
- From: Rena <hyperhacker@...>
- Date: Wed, 6 May 2015 13:16:49 -0400
On Wed, May 6, 2015 at 1:14 PM, Soni L. <fakedme@gmail.com> wrote:
>
>
> On 06/05/15 01:27 PM, Hisham wrote:
>>
>> On 6 May 2015 at 13:13, Luiz Henrique de Figueiredo
>> <lhf@tecgraf.puc-rio.br> wrote:
>>>>>>
>>>>>> PS. I still like syntax "hello":sub(1, 4)
>>>>
>>>> I always wondered: is there a reason why this syntax is not supported?
>>>
>>> Because to allow it in general would require unbounded lookahead.
>>> Consider for instance:
>>> "x".."x".."x".."x".."x".."x".."x".."x".."x".."x".."x":sub(1, 4)
>>
>> It would? I would assume that : binds tighter than .., as in:
>>
>> Lua 5.3.0 Copyright (C) 1994-2015 Lua.org, PUC-Rio
>>>
>>> function f(s) return s:upper() end
>>> f "hello" .. "world"
>>
>> HELLOworld
>>>
>>> The current solution with parentheses solves this and is fully general.
>>> It's probaly easy to allow just this syntax <string literal> : <function
>>> call>,
>>> but not general enough.
>>
>> But it is just as general as `f "hello"`, isn't it?
>>
>> To clarify, I wasn't asking about `:` on arbitrary expressions, only
>> on string literals.
>>
>> -- Hisham
>>
> What about table constructors as in `return {init = function(self, ...)
> return self end}:init()`?
Well it's not quite the same, but you can do:
return my_init { init=my_init }
- References:
- metatables for strings?, Sam Putman
- Re: metatables for strings?, Nagaev Boris
- Re: metatables for strings?, Sam Putman
- Re: metatables for strings?, Sam Putman
- Re: metatables for strings?, Dirk Laurie
- Re: metatables for strings?, Nagaev Boris
- Re: metatables for strings?, Sam Putman
- Re: metatables for strings?, Nagaev Boris
- Re: metatables for strings?, Dirk Laurie
- Re: metatables for strings?, Hisham
- Re: metatables for strings?, Luiz Henrique de Figueiredo
- Re: metatables for strings?, Hisham
- Re: metatables for strings?, Soni L.