2009/1/16 Andrew Wagner <[email protected]>: > I've been playing around with this, but haven't been able to come up with > anything. > myFunc f (a,b) (c,d) = (f a c, f b d) > It feels as if there should be a nice simple version of this using some > combination of {un,}curry, "on", &&&, ***, or something else. > Any thoughts? > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe > >
uncurry (***) ((first f).(second f) $ (a, b)) (c, d) == uncurry (***) (f a, f b) (c, d) == (f a *** f b) (c, d) == (f a c, f b d) == myFunc f (a, b) (c, d), if I'm not mistaken. Removing the points: uncurry (***) ((first f).(second f) $ (a, b)) == myFunc f (a, b) uncurry (***) . ((first f) . (second f)) == myFunc f uncurry (***) . (first f) . (second f) == myFunc f (associativity of (.)) --Max _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
