Ruby blocks look like lambdas. But a block does not get its own return, when Ruby encounters return inside a block, it returns from the method that supplied the block. Any code waiting for the block to finish is skipped along the way. This is called non-local returns and can be unintuitive when you’re new to Ruby