An anonymous function (x: T) => E can always be expressed as {def f(x: T) = E; f} where f is an arbitrary name that has not yet been used in the program.
Hence, it can be said that anonymous functions are like syntactic sugar. They sometimes make writing functions easier, but they’re not essential in the sense that they do not add anything to the fundamentally expressive power of the language.