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));
}
RunHere are the relevant sections in the new and old books: