I wonder why this can't become a language feature? Couldn't Clojure attach
the :source metadata directly to function objects (in addition to vars)? Is
there a JIRA ticket for it? I'd instant-vote for it because I know it would
make my debugging faster.
On Thursday, May 28, 2015 at 1:03:52 PM UTC+2, Shalaka Patil wrote:
>
> I have one function wait-until whose definition is like-
> (defn wait-until
> [pred]
> (wait-until* pred))
> where, pred is a function & wai-until* is some internal working.
>
> Now, I want to modify it like-
> (defn wait-until
> [pred]
> (try
> (wait-until* pred)
> (catch Exception e
> (println "Exception happened for fn " pred))))
>
> Now, for ex, input is (wait-until #(exists? ".foo")) and if wait-until*
> throws exception
> it will print something like- #<taxi$eval40409$fn__40410
> clj_webdriver.taxi$eval40409$fn__40410@7b7b202f>(compiled name for that
> anonymous function)
> instead of that, I want actual function body which is #(exists? ".foo").
>
> But, I didn't get way where I can get source of anonymous function.
>
> Instead of that I found two ways for better user message:
> 1. Add meta to anonymous fn and print that meta in error message, so user
> will get exact idea of where wait-until has failed.
> (defn wait-until
> [pred]
> (try
> (wait-until* pred)
> (catch Exception e
> (when (meta pred)
> (println "Exception happened for fn with meta: " (meta pred))))))
>
> and input will be like- (wait-until ^{:checks "existence of foo"}
> #(exists? ".foo"))
> and if it throws exception,
> output will be like- Exception happened for fn with meta: {:checks
> "existence of foo"}
>
> 2. Pass pred fun in quoted form, so that wait-until fn can execute + get
> its body as it is.
> (defn wait-until
> [pred]
> (try
> (wait-until* (exec pred))
> (catch Exception e
> (println "Exception happened for fn " pred))))
>
> So, which way is better to go with. Or is there any other way to do?
>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.