2014-10-08 10 views

risposta

13

In alternativa, si noti che per le funzioni h e f con tipi appropriati,

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

modo da poter scrivere

f >>= (,) 
+4

Non penso che sia una sezione di tupla, penso che sia standard. –

+0

Mi piace perché evita l'importazione. –

+0

Risolto, @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

Oppure, anche da 'Control.Arrow',' FIRST' e 'secondo'. – Zeta

5

ne dite di usare l'istanza Applicative per (->)

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

Per esempio

liftA2 (,) id succ 5 

>>> (5,6) 
Problemi correlati