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:
- NVL in SQL Server - 2023-11-01
- ¿Que es Cake Build? - 2023-02-22
- #How to fix error: MSB4019: The imported project «Microsoft.Data.Tools.Schema.SqlTasks.targets» was not found - 2023-02-20