Higher order functions allow functions to be passed as parameters to other functions and returned from functions. This document discusses higher order functions in Scala including examples of functions that take functions as parameters and return functions. It also covers call-by-value vs call-by-name parameter passing and provides an example of using call-by-name to avoid evaluating expensive expressions multiple times. Finally, it demonstrates using a using method to ensure resources are closed in a finally block to avoid resource leaks.