Re:Ruby 2.6
by avandecreme on Monday December 24, 2018 @03:08PM
(#18754006)
Just parameters that are functions, except that you can only have one per function.
I still fail to see the advantage of blocks over being able to pass functions as arguments like in other languages.
[ Parent
| on HN ]
One nice feature of blocks is that `return` will return from the enclosing function, rather than the block, so you can write:
def find(x, l)
l.each do |y|
return y if y == x
end
end
Where in Lisp you'd use (return-from find x) and in other languages you might pass in a continuation or use a special return value protocol. It's a nice solution for higher order functions that are supposed to feel more language-level.Also, you can pass functions as arguments like in other languages; lambdas behave like you would expect them to.