Because we have now learned how to return arbitrary closures with no overhead, we can combine that with macros that accept any number of parameters (Chapter 1, Learning the Basics; Accepting a variable number of arguments) to create an easy way to chain actions as you would be used to in functional languages such as Haskell.





















































