uncurry
函数仅适用于接受两个参数的函数:
uncurry :: (a -> b -> c) -> (a, b) -> c
如果我想要解开具有任意参数数量的函数的柯里化,我可以编写单独的函数:
uncurry2 f (a, b) = f a b
uncurry3 f (a, b, c) = f a b c
uncurry4 f (a, b, c, d) = f a b c d
uncurry5 f (a, b, c, d, e) = f a b c d e
但是这很快就变得乏味了。有没有办法将其概括,这样我只需编写一个函数?