ANN: the implosion of ChainMap.jl



If anyone has been using ChainMap, it has now imploded into 4 separate packages.

  • ChainRecursive provides a chaining tool that should be able to be run on entire files. It uses consistent rules to figure out which blocks you want to chain and chains them.

  • LazyCall provides a way to store functions and their arguments together for later use in functional programming, and also, a flexible alternative to dot vectorization.

  • CreateMacrosFrom provides a simple way to create macros from underlying functions. These underlying functions can be reused to make bigger and better macros.

  • NumberedLines attaches line numbers to their corresponding lines. This makes it easier to write macros that retain line number information.


Could you please provide an example of a macro that uses NumberedLines? My function-rewriting macros tend to have very poor line numbering, and I’m not sure why.


Sure. Well my macro in ChainRecursive.jl uses Numberedlines, and there’s a simplified version in the latest docs:

Anyway, feel free to open an issue if you have any requests/recommendations for other examples.