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.

4 Likes

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: https://bramtayl.github.io/NumberedLines.jl/latest/.

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

1 Like