En esta ocasión os voy a hablar de unos métodos de los closures de Groovy que no conocía hasta hace poco tiempo (lo sé lo sé, seguro que muchos ya los conocíais de antes...), se trata de los métodos curry, rcurry y ncurry.
Estos métodos mencionados son de los closures y lo que permiten es fijar los parámetros del closure sobre el que se llaman.
Pongamos un ejemplo para que se entienda mejor.
def multiplicacion = {x,y-> return x*y}
def porDos = multiplicacion.curry(2)
def porTres = multiplicacion.curry(3)
println multiplicacion(2*5) // 10
println porDos(5) // 10
println porTres(5) // 15
Como podéis ver en el ejemplo, al hacer def porDos = multiplicacion.curry(2) lo que estamos consiguiendo es fijar el primer parámetro con el valor 2, evitando tener que repetir ese parámetro cada vez que se quiera hacer una multiplicación por 2.
Existen otros dos métodos que hacen lo mismo pero fijando los parámetros en otras posiciones.- rcurry: hace lo mismo que curry pero fijando los parámetros de derecha a izquierda en lugar de izquierda a derecha
- ncurry: permite indicar la posición del parámetro a fijar. Un ejemplo sería multiplicar.ncurry(2,2) para fijar el segundo parámetro con el valor 2.
En cualquiera de los métodos se pueden indicar tantos parámetros como sean necesarios.
Espero que os sirva.
Enjoy!


0 comentarios:
Publicar un comentario