我有一个元组列表,其中包含以下形式的信息:
carDatabase :: [Car]
carDatabase = [("Ford", "Focus", 2003, [("Autotrader", 9995), ("Parkers", 9495), ("Motors", 9995)]), ("Vauxhall", "Corsa", 2005, [("Autotrader", 5995), ("FOW", 7000), ("Gumtree", 6500)]), ...]
我想要做的是map
这个列表返回一个字符串列表,其中包含每个元组的第一个元素(我有一个函数用carMan (x,_,_,_) = x)
执行此操作但是也使用{ {1}}函数,我无法找到一种方法来组合它们,无论是函数组合还是映射地图等。
这是我最接近的。
toLower
任何帮助都将不胜感激。
这是我得到的错误:
mapTest :: [Car] -> [String]
mapTest cs = map toLower (map carMan cs)
答案 0 :(得分:4)
您可以使用.
map ((map toLower) . carMan) cs
或者使它成为辅助功能:
strLower :: String -> String
strLower = map toLower
mapTest :: [Car] -> [String]
mapTest = map (strLower . carMan)