Lambdas
You may have heard of lambdas before. Perhaps you've used them in other languages. Despite the fancy name, a lambda is just a function... peculiarly... without a name. They're anonymous, little functional spies sneaking into the rest of your code. Lambdas in Ruby are also objects, just like everything else! The last expression of a lambda is its return value, just like regular functions. As boring and familiar as that all sounds, it gives us a lot of power.
As objects, lambdas have methods and can be assigned to variables. Let's try it!
Cool. Notice that our anticipatorily apologetic string is the return value of the lambda which we see by printing it using puts
. Now, while this is a lovely string, perhaps we'd like to return something more interesting. Lambdas take parameters by surrounding them with pipes.
Even cooler. Note that we replaced the {}
that wrapped the lambda with do..end
. Both work equally well, but the convention followed in Ruby is to use {}
for single line lambdas and do..end
for lambdas that are longer than a single line.
Now go ahead and add a lambda to the following code which increments any number passed to it by 1.