Scala supports first-class functions that can be passed as arguments to other functions or stored in variables. Functions can be defined as method members or as anonymous function literals. Function literals allow defining unnamed functions inline. Functions in Scala support closures, where functions can close over variables in the enclosing scope. This allows functions to access variables that are not passed in as arguments. The document discusses various ways to define functions in Scala including local functions, function literals, partially applied functions, and repeated parameters.