Bloques

Los arrays entienden mensajes aún más interesantes, que provienen del paradigma funcional:

 [20, 4, 5, 10].map { |it| it * 2}
=> [40, 8, 10, 20] # devuelve el resultado de aplicar
                   # una transformación a cada elemento

 [20, 4, 5, 10].select { |it| it > 5  }
=> [20, 10] # filtra los elementos según una condición

 [20, 4, 5, 10].inject(0) { |accum, it| accum + it }
=> 39 # reduce una lista utilizando una operación binaria

Estos se diferencian de los que vimos anteriormente porque toman un bloque de código: una porción de código que puede ser pasada por parámetro y ejecutada más tarde.

Los bloques son la única cosa en ruby que no es un objeto.

Probá en la consola los ejemplos de código dados. Investigá además qué hacen los siguientes mensajes:

  • any? y all?
  • reject
  • each
  • flat_map

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