nic*_*las 7 haskell tuples list
我有这样的清单
["peter","1000","michell","2000","kelly","3000"]
Run Code Online (Sandbox Code Playgroud)
我想转换成
[("peter",1000),("michell", 2000),("kelly",3000)]
Run Code Online (Sandbox Code Playgroud)
请帮忙.谢谢.
ony*_*ony 14
cnv :: [String] -> [(String, Integer)]
cnv [] = []
cnv (k:v:t) = (k, read v) : cnv t
Run Code Online (Sandbox Code Playgroud)
如果你想处理奇数长度,只需cnv [x] =在最后一个之前添加变量
ony的解决方案有点短,但这是一个使用splitEvery非常方便的split库的非递归版本:
cnv = map (\[name, amount] -> (name, read amount :: Int)) . splitEvery 2
Run Code Online (Sandbox Code Playgroud)
这里的步骤(对我来说至少比)在递归版本中更清晰一些.
| 归档时间: |
|
| 查看次数: |
7692 次 |
| 最近记录: |