如何从列表中返回列表Haskell
我试图从我的测试数据类型中获取包含所有城市名称的列表。波纹管我的数据是我试图使用的代码,它将城市分成字符串名称 52,5 到 x 和 y 以及数字列表。现在我正在努力返回一个只包含城市名称的列表。
type City = (String, Int, Int, [Int])
testData :: [City]
testData =
[
("Amsterdam", 52, 5, [1158, 1149, 1140, 1132]),
("Athens", 38, 23 , [3153, 3153, 3154, 3156]),
("Berlin", 53, 13 [3567, 3562, 3557, 3552]),
("Brussels", 51, 4, [2096, 2081, 2065, 2050]),
("Bucharest", 44 , 26, [1794, 1803, 1812, 1821]),
("London", 52, 0, [9426, 9304, 9177, 9046]),
("Madrid", 40, 4, [6669, 6618, 6559, 6497]),
("Paris", 49, 2, [11079, 11017, 10958, 10901]),
("Rome", 42, 13, [4278, 4257, 4234, 4210]),
("Sofia", 43, 23, [1284, 1281, 1277, 1272]),
("Vienna", 48, 16, [1945, 1930, 1915, 1901]),
("Warsaw", 52, 21, [1790, 1783, 1776, 1768])
]
allNames :: [City] -> [String]
allNames((name,x,y,[y0,y1,y2,y3]):rest)= name : allNames(rest)
``
回答
我想你只需要
map ((a,_,_,_) -> a) testData
这些是在看到上面的行时可能会出现在您脑海中的几个问题的答案:
- 什么是
map? 文档应该足以理解是什么map。 - 什么是
和->? - 什么是
_?这是我不在乎这是什么通配符。(在此处搜索下划线 。)
但最重要的是,你需要先学习一下。试试LYAH。