Currying is a concept in Functional Programming that’s enabled by Higher-order functions. It’s best described as: the ability to take a function that accepts n parameters and generate from it one of more functions with some parameter values already filled in. Ruby 1.9 comes with support for this concept(through the Proc#curry method) and this blog post is explaining how you can use it effectively.