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 elvalue
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.