如何从列表中返回列表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。


以上是如何从列表中返回列表Haskell的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>