该uncurry函数仅适用于带有两个参数的函数:
uncurry :: (a -> b -> c) -> (a, b) -> c
Run Code Online (Sandbox Code Playgroud)
如果我想用任意数量的参数来解决函数,我可以编写单独的函数:
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
Run Code Online (Sandbox Code Playgroud)
但这很快就会变得乏味.有没有办法概括这个,所以我只需要编写一个函数?