Lambdas (which exist in other languages) are similar to special functions created just for simple use, and not for performing some complex actions.
When you use a method of a type Array#collectthat takes a block in {}, you essentially create a lambda / proc / block just to use this method.
a = [1, 2, 3, 4]
a.collect {|n| n**2 }
sq = lambda {|n| n**2 }
sq.call 4
SO lambda Proc.