Pytania otagowane jako comonad

1
Zrozumienie, dlaczego Zipper jest Comonad
To jest kontynuacja odpowiedzi na moje poprzednie pytanie. Załóżmy, że trzeba mapować każdy element a:Aod List[A]do b:Bz funkcji def f(a:A, leftNeighbors:List[A]): Bi generować List[B]. Oczywiście nie mogę po prostu zadzwonić mapna listę, ale mogę użyć suwaka listy . Zamek błyskawiczny to kursor do poruszania się po liście. Zapewnia dostęp do …

2
Jaka jest typeklasa Comonad w Haskell?
Jaka jest typeklasa Comonad w Haskell? Tak jak w Comonad z Control.Comonad w pakiecie comonad (mile widziane są również wyjaśnienia wszystkich innych pakietów, które zapewniają typeklasę Comonad). Niewyraźnie słyszałem o Comonad, ale tak naprawdę wiem tylko o tym, że jest to extract :: w a -> acoś w rodzaju paraleli …

3
Zipper Comonads, ogólnie
Biorąc pod uwagę dowolny typ kontenera, możemy utworzyć (skoncentrowany na elementach) Zipper i wiedzieć, że ta struktura jest Comonad. Zostało to niedawno zbadane ze wspaniałymi szczegółami w innym pytaniu o przepełnienie stosu dla następującego typu: data Bin a = Branch (Bin a) a (Bin a) | Leaf a deriving Functor …

1
Jak faktoryzować monadę kontynuacji w lewy i prawy punkt pośredni?
Ponieważ monada stanu może być podzielona na produkt (lewy - Functor) i czytnik (prawy - reprezentowalny). Czy istnieje sposób na uwzględnienie Monady kontynuacji? Poniżej kodu jest moja próba, która nie sprawdza typu -- To form a -> (a -> k) -> k {-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigs, TypeSynonymInstances #-} type …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.