Object Oriented Design is powerful for organizing software behavior, but without the benefit of lambdas' code-as-data flexibility, in many cases it fails to reduce solutions to their simplest form.
Functional programming has been gaining popularity, and many Rubyists have embraced functional languages such as Elixir and Clojure. While Ruby generally isn't considered a functional language, it does have lambdas and a rich Enumerable library.
Although Ruby's Enumerable functionality is widely appreciated and used, its lambdas generally are not.
This presentation introduces the developer to lambdas, and shows how they can be used to write software that is cleaner, simpler, and more flexible.
We'll go through lots of code fragments, exploring diverse ways of exploiting the power of lambdas, and identifying reusable functional design patterns along the way.