lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]



Em 06/06/2015 18:48, "Nagaev Boris" <bnagaev@gmail.com> escreveu:
>
> 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)
>

Well, this code

a=5
print
(a)

Just return 5. Then, 1) is valid, concerning the use of blanks.

*I think* 2) an intrinsic misconception of the : definition.

> ?
>
> 3. Personally, I'd prefer v:abs(). v:abs doesn't look like a call.
>
> PS. Look into moonscript.
>
> --
>
>
> Best regards,
> Boris Nagaev
>