#Kata andThen y compose en Scala.

En este post te voy a explicar como componer funciones en Scala con los métodos compose y andThen.

Primeros pasos.

En Scala la composición de funciones te permite convertir una serie de funciones en una sola. Tienes tres opciones, la primera, más común, es usar la llamada de una función como parámetro de otra. Las segunda y la tercera son el uso de los métodos andThen y compose.

Scala provee funcionalidad para convertir la llamada de funciones en una sola. La lógica es simple:

 

Función 1: A ⇒ B

 

Funcion2: B ⇒ C

 

Función compuesta: A ⇒ B ⇒ C

 

Para que esto sea posible, las dos funciones deben de ser compatibles. El resultado de la función 1, debe de ser compatible con el argumento de la función 2.  De lo contrario vas a tener errores de compilación.

 

andThen vs compose.

Estos métodos son muy parecidos, te permiten encadenar funciones. La única diferencia es el orden:

  • andThen: A ⇒ B ⇒ C (A andThen B andThen C).
  • compose: C ⇒ B ⇒ A (A compose B compose C).

Ejemplo:

En el siguiente ejemplo tengo 2 funciones que me permiten calcular el área de un círculo, y una tercera función que multiplica un valor 5 veces. Esta última sirve como ejemplo de composición de un tercer función.

 

 

 

Referencias:

 

Gustavo Sánchez