lua-users home
lua-l archive

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


> 2009/9/28 Roberto Ierusalimschy <roberto@inf.puc-rio.br>:
> >> You can already associate any kind of information to a function by
> >> using it as a weak key in a Lua table. However you need access to the
> >> debug library to access built-in informations, or simply to allow a
> >> function to get a reference to itself to use as a key in the weak
> >> tables I mentioned.
> >
> > You do not need any reference; the function itself can be the key.
> 
> I meant something like that:
> 
> local ptypes = {}
> 
> function foo(a)
>   assert(type(a)==ptypes[debug.getinfo(1, 'f').func][1], "invalid
> parameter type")
>   return a + 42
> end
> ptypes[foo] =  {'number'}
> 
> Is there any other way to use the currently executing function as a key ?

No; you are right.

-- Roberto