¿Qué es una mónada?
una mónada es un monoid en la categoría de endofunctors ...?
... Intentemos de nuevo:
una mónada es una abstracción utilizada en la programación funcional para manejar los cálculos de manera consistente. Es un patrón de diseño que permite el encadenamiento de las operaciones mientras encapsulan los efectos secundarios, como los cambios de estado, la E/S o los errores, de manera controlada.
Las mónadas pueden considerarse como una forma de envolver valores y aplicarles funciones, asegurando que los cálculos se realicen en un entorno predecible y controlado.
Mi comprensión personal es: una mónada es una estructura de datos con
Esto permite el encadenamiento y la composición de las operaciones de una manera que preserva la inmutabilidad y la pureza funcional: un enfoque de "inversa" de una clase, donde el estado no se puede modificar en el lugar, pero las transformaciones se aplican funcionalmente para producir nuevas instancias.
Esta "simetría inversa" resalta el contraste:
Las clases modifican su estado interno, manteniendo la mutabilidad y la interacción directa a través de métodos internos. La mayoría de las veces interactúan con un estado global
Las mónadas alcanzan resultados similares a una clase, pero al envolver valores y asignando transformaciones inmutables externas, no tienen efectos secundarios: no hay estado global
Ejemplo:
Proyecto de ejemplo en Python:
https://github.com/blackopsrepl/py-monad-task-manageRage&&&]
En lugar de modificar directamente el estado de la lista de tareas, usamos la función return_ para envolver el estado inicial en un contenedor monádico, y la función de enlace para aplicar transformaciones al estado de manera predecible. Cada vez que se realiza una operación (como agregar, editar o eliminar tareas), devuelve una nueva instancia del estado, asegurando la inmutabilidad y la composición.
Funciones clave:
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3