¿Bloques? ¿Eso se come?

¡Pausa! Antes de continuar, necesitamos conocer a unos nuevos amigos: los bloques.

Los bloques son objetos que representan un mensaje o una secuencia de envíos de mensajes, sin ejecutar, lista para ser evaluada cuando corresponda. La palabra con la que se definen los bloques en Ruby es proc. Por ejemplo, en este caso le asignamos un bloque a incrementador:

un_numero = 7
incrementador = proc { un_numero = un_numero + 1 }

Ahora avancemos un pasito: en este segundo ejemplo, al bloque { otro_numero = otro_numero * 2 } le enviamos el mensaje call, que le indica que evalúe la secuencia de envíos de mensajes dentro de él.

otro_numero = 5
duplicador = proc { otro_numero = otro_numero * 2 }.call

¡Es hora de poner a prueba tu conocimiento! Marcá las respuestas correctas:

¡Dame una pista!

¿Cuánto vale un_numero luego de las primeras dos líneas? Prestá atención a la explicación: la secuencia de envío de mensajes en el bloque del primer ejemplo está sin ejecutar. En cambio, al enviar el mensaje call en el ejemplo de otro_numero...

Tenés que iniciar sesión antes de empezar a enviar tus soluciones