haskell functional-programming monads underscore.js comonad

haskell - ¿La cadena funciona en underscore.js crea una mónada?



functional-programming monads (1)

En la documentación de la chain encontrará:

La chain llamadas en un objeto envuelto hará que todas las futuras llamadas a métodos devuelvan también los objetos envueltos. Cuando haya terminado el cálculo, utilice el value para recuperar el valor final.

Entonces, ¿la función de chain crea una mónada?


¡No, no una mónada, sino una comadán! Convierte una función que toma un objeto envuelto y devuelve un valor normal en una función que toma y devuelve un objeto envuelto. Como una firma de tipo Haskell que sería:

(Wrapped a -> b) -> (Wrapped a -> Wrapped b)

El tipo de firma de value es:

Wrapped a -> a

Estos son precisamente lo que necesitas para un comonad. La primera función se suele llamar extend y el segundo extract .

Puedes pensar en un comonad como un valor con algún contexto adicional. Y eso es, por supuesto, exactamente lo chain hace la chain .

Vea esta pregunta de para más información sobre comonads.