Ok, makes sense. For what it’s worth (I’m very new at Julia, but have been using Lisp/Scheme/Clojure for a while now)… In Lisp/Clojure I think there’s a preference even for internal function definitions to use macros vs eval for the reason that macros modify the source at parse time, but eval will only have its effect once interpretation has begun. This distinction can be important for tools that operate on code (linters, static analyzers, and such).
On September 3, 2015 at 10:34:27, Mauro ([email protected]) wrote: > Out of curiosity, why use `@eval` directly instead of defining a > macro? (I’m just trying to get a better feel for what’s more Julian.) Generally: Use eval when you want to generate code at a particular location. Conversely, macros are used if you want to provide a way for your users to generate code in a certain way (that you specify) in their own code. > On September 2, 2015 at 12:44:39, Patrick Kofod Mogensen > ([email protected]) wrote: > > I'm in a train right now, but yes. Look up metaprogramming in the docs, or > look at the blog entry on refactoring code in Twitter.jl > http://randyzwitch.com/julia-metaprogramming-refactoring
