This document discusses three functional patterns: continuations, format combinators, and nested data types. It provides examples of each pattern in Scala. Continuations are represented using explicit continuation-passing style and delimited control operators. Format combinators represent formatted output as typed combinators rather than untyped strings. Nested data types generalize recursive data types to allow the type parameter of recursive invocations to differ, as in square matrices represented as a nested data type. The document concludes by drawing an analogy between fast exponentiation and representing square matrices as a nested data type.