There is a new edition of the book and this is an old link.
While functions and types abstract over code, macros abstract at a syntactic level.
macro_rules! five_times { ($x:expr) => (5 * $x); } fn main() { assert_eq!(25, five_times!(2 + 3)); }Run
Here are the relevant sections in the new and old books: