Function composition con Compose y AndThen en C#.

En este poste te voy a mostrar como puedes hacer composición de funciones en C#.

Primeros pasos.

La composición de funciones (function composition) es un mecanismo heredado del paradigma funcional que permite componer o encadenar una función a partir de otras.

Este mecanismo no es parte del framework, afortunadamente, puedes emularlo con métodos de extension y Funcs. C# soporta el uso de funciones como objetos desde hace tiempo.

Tienes dos opciones para evaluar la cadena, evaluar de izquierda a derecha, o viceversa:

  • Compose: C ⇒ B ⇒ A
  • AndThen: A ⇒ B ⇒ C

Cosas a tener en cuenta.

Este ejemplo solo evalúa funciones que tienen el mismo tipo de entrada y de salida, si necesitas resolver escenarios más complejos, quizá, te convenga descargar packages Nuget específicos como Language Extensions.

Ejemplo:

En el siguiente ejemplo hago uso de la composición de funciones al estilo de Scala. Con los métodos de extension Compose y AndThen. Descompuse la fórmula de cálculo del área del círculo en varias funciones, y las compuse para producir el resultado deseado.

Referencias:

 

Gustavo Sánchez
Últimas entradas de Gustavo Sánchez (ver todo)

Soy especialista en escribir software de calidad. Mediante el uso de marcos de trabajo, técnicas y automatización de procesos he podido reducir los costes operativos de los sistemas de la empresa. Sistemas confiables y adaptables producen clientes felices.