Funkcja changes
ma typ Frameworks t => Behavior t a -> Moment t (Event t (Future a))
. Future
jest abstrakcyjna i jest tylko jedna funkcja, która je konsumuje (reactimate'
).Dlaczego `zmiany` zwracają` Zdarzenie t (Przyszłość a) `
Mogę jednak łatwo napisać następującą funkcję:
changes' :: Frameworks t => Behavior t a -> Moment t (Event t a)
changes' b = fmap (fmap const b <@>) (changes b)
dostać normalną (nie Future
) wydarzenie.
Czy coś jest nie tak z tą funkcją? Jeśli nie, dlaczego oryginalna funkcja changes
ma bardziej restrykcyjny typ?
sens. Narysowałem [zdjęcie] (http://i.imgur.com/tVRDv2r.png) w celu zilustrowania. –
Związany z tym z odpowiedzi. :-) –