C'è una funzione nella libreria standard Haskell che prende due funzioni e restituisce una funzione che restituirà i risultati di entrambe queste funzioni in una tupla, qualcosa di simile:Combina funzioni a una funzione che restituisce una tupla
(><) :: (a -> b) -> (a -> c) -> a -> (b, c)
f >< g = \a -> (f a, g a)
In modo che:
((+2) >< (+3)) 10 == (12,13)
((:[1,2,3]) >< (*2)) 5 == ([5,1,2,3],10)
E, con staffe idioma, possiamo solo scrivere '(| f, g |)'. – pigworker