将两个函数应用于元组列表

时间:2016-03-09 20:57:21

标签: haskell

我有一个元组列表,其中包含以下形式的信息:

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)

1 个答案:

答案 0 :(得分:4)

您可以使用.

执行功能组合
map ((map toLower) . carMan) cs

或者使它成为辅助功能:

strLower :: String -> String
strLower = map toLower

mapTest :: [Car] -> [String]
mapTest = map (strLower . carMan)