该uncurry
函数仅适用于采用两个参数的函数:
uncurry :: (a -> b -> c) -> (a, b) -> c
如果我想对具有任意数量参数的函数进行 uncurry,我可以编写单独的函数:
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
但这很快就会变得乏味。有什么方法可以概括这一点,所以我只需要编写一个函数吗?