Home »
Ruby Tutorial
Lambdas in Ruby
By IncludeHelp Last updated : December 01, 2024
Ruby Lambdas
In the last tutorial, we have seen what are procs, how they are implemented in Ruby and their examples? Lambdas are pretty similar to Procs. They are also used to store a set of instructions or a method inside a variable which is also the feature of Procs. You can call lambdas anywhere in your code wherever required.
Syntax
Let us see the basic syntax of Lambdas in Ruby for understanding them in a better way,
variable_name = lambda {|argument1,argument2| argument1 * argument2}
You can observe that the syntax is quite similar to Procs but in Proc, we need to use ".new" method to create a Proc but here writing lambda is enough for declaring a lambda. In the above syntax, we are using curly braces and inside them, we are passing the arguments inside || block or pair of alteration symbol. We have demonstrated by multiplying the argument whereas you can do any type of processing inside the block.
Example of Lambda
Now, let us go through an example of Lambda, so that we will be able to see its implementation in Ruby code.
var = lambda {|arg1,arg2,arg3| puts arg1*arg2+arg3}
var[12,45,33]
Output
573
In the above code, we are creating lambda which is used to process some kind of arithmetic calculations. We are calling it by writing its name and passing arguments inside square braces like [].
Stabby Lambda
You can also create a lambda in the following way. It is known as stabby lambda. The example is given below,
var = -> (arg1,arg2,arg3) {puts arg1*arg2+arg3}
var[12,45,33]
Output
573
We have created a stabby lambda here. The above code is modified to create a better understanding of differences that come in terms of syntax. Here we are passing arguments inside () braces and the processing is done inside the curly braces { }.
Calling a Lambda
We have seen this in Procs as well. Lambdas are called in the same way as Procs. There are two ways, first one is just by writing the name of the variable along with the arguments inside the square braces and the second one is by the help of the call method. The syntax is given below,
variable_name.call( argument1, argument2)
Example
Let us see its practical implementation with the help of example given below,
var = lambda{
|num|
i = 1
while(i<=10)
p num * i
i = i + 1
end
}
var.call(34)
Output
34
68
102
136
170
204
238
272
306
340
In the above code, we are using lambda.call() method for calling the lambda.