In OO, assignment is one of our main tools. Most developers learn how to store values in variables shortly after learning “Hello World”. By contrast, functional programming makes much less use of assignment and mutation. Instead techniques like function composition, recursion, and anonymous functions are used to produce the same results that OO programmers produce with side effects.
Despite being object oriented, Ruby easily accommodates pure functional approaches. This talk will demonstrate how common programming tasks can be accomplished without assignment or mutation. Ruby and Scheme (a Lisp dialect) will be used for examples. I’ll also discuss some of the great resources available for those interested in digging deeper into functional programming.