list - 如何将元组列表转换为单个列表
问题描述
我正在尝试将元组列表转换为单个列表,其中每个元组中只有第二个值。
targets :: [(a,b)] -> [a]
targets (x:xs) = [snd(x)] ++ targets xs
这是我到目前为止所拥有的,但它不起作用。任何帮助将不胜感激。
解决方案
这是一个映射,对于每个 2 元组,您获取第二个元素,因此我们可以使用map :: (a -> b) -> [a] -> [b]
:
targets :: [(a,b)] -> [b]
targets = map snd
请注意,返回类型是[b]
:s 的列表b
,而不是a
s。但是,您的 a 类型Graph
具有 type [(Node a, [Int])]
,因此您需要将这些列表连接在一起。
推荐阅读
- .net - 带有版本的 dotnet 构建在 docker 中不起作用
- javascript - ng-enter 事件未在 md-item-template 中触发
- c++ - C++
在一行中生成 - angular - Angular 6 - 访问嵌套的 formArray
- jquery - SVG 和 JQuery GIF 填充在 Firefox 上运行速度较慢
- c++ - 如何在 C++ 中处理灵活的数组
- javafx - 如何增加 lambda 表达式中的值?
- html - HTML+CSS 库
- php - 创建简单的注册和登录系统并得到错误 500
- java - JSON 问题:没有使用名称注册的 List$ListStyle:默认值