2014-10-08 15 views

Odpowiedz

13

Alternatywnie należy pamiętać, że dla funkcji h i f z odpowiednich typów

h >>= f = \w -> f (h w) w 

więc można napisać

f >>= (,) 
+4

Nie sądzę, że to sekcja krotkowa, myślę, że to standard. –

+0

Podoba mi się to, ponieważ unika importowania. –

+0

Naprawiono, @DietrichEpp. – dfeuer

11
import Control.Arrow 
(g &&& f) v = (g v, f v) 
-- ergo, 
(id &&& f) v = (v, f v) 
(f &&& id) v = (f v, v) 
+4

Lub też z '' first' Control.Arrow' i 'second'. – Zeta

5

Jak na temat korzystania instancję Applicative dla (->)

liftA2 (,) id :: (a -> b) -> a -> (a, b) 

Na przykład

liftA2 (,) id succ 5 

>>> (5,6) 
Powiązane problemy