After seeing the final product in your REDME, i.e:
(m/defn ^{::m/aspects [timed logged traced]} do-a-thing [x stuff]
(.doThatThing x stuff))
My question would be: Is it possible that the final product would had use
`defn` instead, given that the namespaced tag has all the needed
information? e.g
(defn ^{::m/aspects [timed logged traced]} do-a-thing [x stuff]
(.doThatThing x stuff))
El lun., 24 jun. 2019 a las 14:33, Timothy Dean (<[email protected]>)
escribió:
> An aspect-oriented library for Clojure
>
> Most aspect-oriented patterns I have seen in Clojure work one of two ways:
> first, via rebinding var roots dynamically; or second, via functional
> composition. While both of these patterns are perfectly adequate for many
> use cases, they are not (IMO) perfect solutions for all. If I wish to avoid
> dynamic rebinding or if I do not wish to eschew built-in language/tooling
> features (fn arglist metadata, docstrings, etc.), then typical patterns
> won't work.
>
> The following library provides an extension to Clojure's built-in `defn`
> form that allows you to tag your function definitions with compile-time
> macro transformations. It also provides very simple macro constructors for
> the most common use cases. It's not intended to replace dynamic
> decorations <https://github.com/technomancy/robert-hooke> or functional
> composition <https://stackoverflow.com/a/5574392/2472391>, but to provide
> another useful tool in the box. The library's motivation is explained with
> a simple example here
> <https://github.com/galdre/morphe/blob/master/docs/rationale.md>, and a
> more detailed comparison with other Clojure idioms is found here
> <https://github.com/galdre/morphe/blob/master/docs/clojure-idioms.md>.
>
> https://github.com/galdre/morphe
>
> I've quite enjoyed building and using this library over the last few
> years, and I hope others can find it useful as well! I recently updated it
> to work with Clojurescript (but not self-hosted Clojurescript). This was an
> adventure, and it's quite possible there are some issues with the CLJS
> implementation that I have not yet discovered.
>
> ~Timothy Dean
>
> --
> 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].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/clojure/74bda940-4f12-4bcb-b1d7-d21380a62b14%40googlegroups.com
> <https://groups.google.com/d/msgid/clojure/74bda940-4f12-4bcb-b1d7-d21380a62b14%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
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].
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/CAO9z-97KufcHBCEez2n_Cp1oL-_1u2HkJi%2Bbx04%2BLmaUz3nFAQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.