En Ruby, el método map
permite transformar los elementos de un array aplicando una función. Para usar map
con una función anónima, se pueden emplear los lambdas o los procs.
map
con una función anónima
lambda
Los lambda
son funciones anónimas que pueden ser almacenadas en variables y ejecutadas con .call
.
numeros = [1, 2, 3, 4]
doblar = ->(x) { x * 2 }
resultado = numeros.map(&doblar)
puts resultado.inspect
Salida:
[2, 4, 6, 8]
Aquí, ->(x) { x * 2
} es un lambda que duplica cada número.
Proc.new
Otra forma de definir funciones anónimas es con Proc.new
.
numeros = [1, 2, 3, 4]
doblar = Proc.new { |x| x * 2 }
resultado = numeros.map(&doblar)
puts resultado.inspect
Salida:
[2, 4, 6, 8]
Proc.new
es similar a lambda
, pero maneja los argumentos de forma más flexible.
map
Si no se necesita reutilizar la función, se puede definir directamente dentro de map
.
numeros = [1, 2, 3, 4]
resultado = numeros.map { |x| x * 2 }
puts resultado.inspect
Salida:
[2, 4, 6, 8]
Esta es la forma más común y concisa de usar map
en Ruby.
Jorge García
Fullstack developer