Re: Don't Laugh - How to Get the Name of an Anonymous Function

2017-10-24 Thread Alex Miller
Just to chime in and second what others have said, functions do not encode their name in an accessible way. The best option right now is to use clojure.repl/demunge on the class name. This is a best-effort function as the transformation from Clojure function name to Java class class name is

Re: Don't Laugh - How to Get the Name of an Anonymous Function

2017-10-24 Thread Sean Corfield
No need to import the compiler. Use clojure.repl/demunge Sean Corfield -- (904) 302-SEAN An Architect's View -- http://corfield.org/ "Perfection is the enemy of the good." -- Gustave Flaubert, French realist novelist (1821-1880) _ From: Ravindra Jaju

Re: Don't Laugh - How to Get the Name of an Anonymous Function

2017-10-24 Thread Ravindra Jaju
It's a good start. You could next import clojure.lang.Compiler and call the static method demunge like so on the output "cool_func_BANG_" (Compiler/demunge "cool_func_BANG_") ; => "cool-func!" On Tue, Oct 24, 2017 at 11:27 AM, Shantanu Kumar wrote: > Not sure whether

Re: Don't Laugh - How to Get the Name of an Anonymous Function

2017-10-24 Thread Beau Fabry
If I had to guess I'd say the name of the function isn't stored with it nil boot.user=> (clojure.reflect/reflect (fn foo [] nil)) {:bases #{clojure.lang.AFunction}, :flags #{:public :final}, :members #{#clojure.reflect.Constructor{:name boot.user$eval1530$foo__1531, :declaring-class

Re: Don't Laugh - How to Get the Name of an Anonymous Function

2017-10-23 Thread Shantanu Kumar
Not sure whether you can deterministically recover the exact name at all times, but the following can get you started: (re-matches #".*\$(.*)__.*" (.getName (class (fn cool-func! [] (println "hi") I have altered the name to `cool-func!` on purpose to show where it may break. Shantanu

Don't Laugh - How to Get the Name of an Anonymous Function

2017-10-23 Thread Nick Mudge
Let's say I have this anonymous function: (fn cool [] (println "hi")) How can I extract the name from it? Obviously the name of the function is stored with the function. How can I get to it? -- You received this message because you are subscribed to the Google Groups "Clojure" group. To