This might be a bit of a strange or off-topic segue but it got me thinking. Is there an idiomatic way to handle optional dependencies in Clojure?
Ideally, this macro would be a part of core.match itself (submit a pull request, get it merged, and whatnot). Of course, you don't want core.match to minimize its dependencies so it probably shouldn't depend on any test infrastructure (in theory; this test infra is in core so who cares). I've had to do something like this for another project, and my solution was: (try (require 'the.library.of.interest) (do-whatever defmacro or whatnot) (catch java.io.FileNotFoundException _ nil)) ; Makes this entire try-catch block do nothing if the require failed. That works pretty well, but I'm wondering why I don't see optional dependencies more often with stuff like that. Cheers, -- Morgon On Monday, June 22, 2015 at 4:27:55 PM UTC-4, whodidthis wrote: > > Thanks, exactly what i needed > > On Monday, June 22, 2015 at 1:01:30 AM UTC+3, Sean Corfield wrote: >> >> How about this: >> >> (defmacro matches [value pattern] >> `(is (match ~value ~pattern true :else false) >> (str "(match " ~value " " '~pattern ")"))) >> >> (let [a {:x 2}] >> (matches a {:y _})) >> >> >> ; => FAIL >> ; => (match {:x 2} {:y _}) >> ; => expected: (clojure.core.match/match a {:y _} true :else false) >> ; => actual: false >> >> -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com 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 clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.