使用列表推导将对列表转换为列表对

cod*_*onk -3 haskell functional-programming

哈斯克尔

split:: [(a,b)] -> ([a],[b])
Run Code Online (Sandbox Code Playgroud)

功能应该返回

split [(1,’a’), (2,’b’), (3,’c’)] = ([1,2,3], "abc")
Run Code Online (Sandbox Code Playgroud)

请问如何使用列表理解来做到这一点?谢谢

Mar*_*ams 5

您正在寻找的拆分功能已存在于标准Haskell Prelude库中; 它被称为解压缩.

使用列表推导:

split xs = ([a | (a,_) <- xs], [b| (_,b) <- xs])
Run Code Online (Sandbox Code Playgroud)