Let’s say I have a function that transforms julia code, and I want to prerun it on any code ever evaluated by Julia. Is there a way to do this? If not, it seems like a great way to customize the Julia experience
Run a macro on all code evaluated by julia
You could very easily create a macro @c
so that any command prefixed with those two characters is subject to your customization. Apply this to an entire module with:
@c module my_module
lots of
customized
code
end
I don’t think most people would want to have a 100% transparent way of altering how julia works. Programmers like to be able to look at a piece of code and know what it does. Having to add at least two characters when you want your code parsed in your own fashion is a small price to pay for that. (The reason why macros calls are prefixed with the @
character is to warn the reader to expect the unexpected.)
This would not be terribly hard to insert into the REPL code. It’s a bit strange though. It would, of course, only be useful for syntactic transformations, but I can imagine using it, e.g., for backwards compatibility support.