2009-04-26 22 views

Respuesta

19

Los cierres, como la palabra tiende a usarse, son solo funciones (o bloques de código, si quieres)) que puede tratar como una pieza de datos y pasar a otras funciones, etc. (el bit "cerrado" es que siempre que lo llame, se comporta exactamente como lo haría si lo llamara donde se definió originalmente). Una mónada es (más o menos) más como un contexto en el que las funciones se pueden encadenar juntas de forma secuencial y controla cómo se pasan los datos de una función a la siguiente.

+1

Esto me ayuda, muchas gracias !!! – user63657

+2

Bueno, esa es una de las mejores descripciones rápidas de las mónadas que he visto. –

+0

+1 - Muy bonito, de hecho. Gracias. – duffymo

5

Son bastante diferentes, aunque las mónadas a menudo usan cierres para capturar la lógica.

Personalmente, trataría de ser sólido en la definición de cierres (esencialmente una parte de la lógica que también captura su entorno, es decir, variables locales, etc.) antes de preocuparme por las mónadas. Pueden venir más tarde :)

Existen varias preguntas sobre los cierres en Stack Overflow: el mejor para ayudarlo dependerá de la plataforma en la que esté trabajando. Por ejemplo, hay:

Personalmente estoy más que empezar a "asimilar" mónadas (gracias al libro que estoy ayudando en). Algún día me ocuparé de escribir un artículo sobre ellos, cuando sienta que los entiendo lo suficientemente bien :)

+0

Jon- Me gusta mucho esta parte de tu respuesta- "Algún día me pondré a escribir un artículo sobre ellos, cuando sienta que los entiendo lo suficientemente bien :)" ¡Sigue así! ¡La mejor de las suertes! –

1

Un "cierre" es un objeto que comprende 1) una función, y 2) los valores de sus variables libres donde está construido.

A "mónada" es una clase de funciones que pueden estar compuestos de una manera determinada, es decir, mediante el uso asociado bind y retorno función de los operadores de orden superior, para producir otras funciones.

0

Creo que las mónadas son un poco más complicadas que los cierres porque los cierres son solo bloques de código que recuerdan algo desde el punto de sus definiciones y las mónadas son una construcción para "retorcer" la función de composición de funciones habitual.

Cuestiones relacionadas