Can I ask what is your use-case, and whether you've done this in some other language? From a quick google there are appear to be some (possibly non-standard) C and C++ compiler defines that provide the current function name, but other than that:
- Python rejected a PEP for this feature ( https://www.python.org/dev/peps/pep-3130/) - Java does not support it in a first-class way ("could use stacktrace, but potentially unreliable") - some lisps appear to have interactive mode support for this kind of introspection, but nothing general. The recommended way to solve problems that require this level of introspection is to do code generation via metaprogramming. On Wed, Aug 5, 2015 at 12:36 PM, Isaiah Norton <[email protected]> wrote: > No. > > Ok, technically, you could do this (inspired by > https://github.com/JuliaLang/julia/issues/8066#issuecomment-61136584): > > julia> function foo() > bt = backtrace() > lookup = ccall(:jl_lookup_code_address, Any, (Ptr{Void}, Int32), > bt[2], 0) > name = lookup[1] > end > foo (generic function with 1 method) > > julia> foo() > :foo > > > But that is a really, really bad idea. Please don't do that. > > On Wed, Aug 5, 2015 at 12:04 PM, Dominique Orban < > [email protected]> wrote: > >> Sorry if this has been asked before. Is it possible to determine the name >> of a function inside that function? For example, >> >> function blah(x) >> my_name = ... # should evaluate to "blah" or :blah >> end >> >> I didn't see that in the introspection section of the documentation. >> >> Thanks! >> > >
