我想创建一个简单的(涉及集和列表)功能,可以执行以下操作,我不知道从哪里开始.
split:: [(a,b)] -> ([a],[b])
Run Code Online (Sandbox Code Playgroud)
让我们一步一步来.该功能的两种情况是:
split [] = ???
split ((a,b):ps) = ???
Run Code Online (Sandbox Code Playgroud)
一个案例很容易.
split [] = ([], [])
Run Code Online (Sandbox Code Playgroud)
对于另一个,我们必须以递归方式使用该函数
split ((a,b):ps) = ???? where
(as, bs) = split ps
Run Code Online (Sandbox Code Playgroud)
我认为很容易看出解决方案是
split ((a,b):ps) = (a:as, b:bs) where
(as, bs) = split ps
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1453 次 |
| 最近记录: |