No, non una monade, ma una comonade! Trasforma una funzione che accetta un oggetto spostato e restituisce un valore normale in una funzione che accetta e restituisce un oggetto avvolto. Come un tipo di firma Haskell che sarebbe:
(Wrapped a -> b) -> (Wrapped a -> Wrapped b)
La firma tipo di value
è:
Wrapped a -> a
Queste sono esattamente ciò che serve per una comonad. La prima funzione è solitamente chiamata extend
e il secondo extract
.
Si può pensare a una comonade come valore con qualche contesto in più. E questo è esattamente ciò che fa chain
.
Vedere this Stackoverflow question per ulteriori informazioni sulle comonad.
fonte
2012-05-04 14:18:35
Ho taggato questo haskell, perché haskellers potrebbe avere qualcosa da dire su questo argomento. – Marcin