[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: simply question about syntatic sugar
- From: Nagaev Boris <bnagaev@...>
- Date: Sat, 6 Jun 2015 21:47:38 +0000
On Sat, Jun 6, 2015 at 9:33 PM, Rodrigo Azevedo <rodrigoams@gmail.com> wrote:
> 3.4.10 – Function Calls
>
> The form
>
> functioncall ::= prefixexp ‘:’ Name args
>
> Arguments have the following syntax:
>
> args ::= ‘(’ [explist] ‘)’
> args ::= tableconstructor
> args ::= LiteralString
>
> can be used to call "methods". A call v:name(args) is syntactic sugar for
> v.name(v,args), except that v is evaluated only once.
>
> -------------------
>
> Let v be a usardata with a unary method, then
>
> v:abs() is a syntatic sugar for v.abs(v)
> v:reduce() is a syntatic sugar for v.reduce(v)
>
> etc
>
> This notation is very unpleasant. There is a problem if this behaviour of
> function calls
>
> v:abs is a syntativ sugar for v.abs(v)
> v:reduce is a syntatic sugar for v.reduce(v)
>
> was valid?
>
> If not, I really appreciate this new flavor.
>
> --
> Rodrigo Azevedo Moreira da Silva
1. Notation v:abs would create a special case, that is why it should be avoided.
2. v:abs can be ambiguous:
v:abs
(a)
Is it
1) v:abs(a)
or
2) v:abs(); (a)
?
3. Personally, I'd prefer v:abs(). v:abs doesn't look like a call.
PS. Look into moonscript.
--
Best regards,
Boris Nagaev