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 [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.