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 (<timothysd...@gmail.com>)
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 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.
> 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 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.
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.

Reply via email to