The document discusses functions as first-class objects in Ruby. It explains that functions can be passed as arguments to other functions, and functions that accept other functions as arguments are known as higher-order functions. This allows patterns of computation to be abstracted and combined. Examples include using a single function to reject even or odd numbers from a list by passing a block, and creating closures that capture local variables even after going out of scope. Functions in Ruby are known as blocks, procs, and lambdas.