检查列表列表的头部

时间:2015-11-21 22:42:31

标签: list haskell filter

我正在尝试编写一个过滤列表列表的函数,但是我无法解决这个问题。我的第一个问题当然是如何过滤列表列表

[[2,2,2],[1,2,3],[2,2,3]]
filter (==2)

我要解决的第二件事是如何只筛选每个列表的头部。

例如对于上面的过滤器,我希望第一个列表的输出为2,第三个列表的输出为2。 任何帮助将非常感激。

干杯。

1 个答案:

答案 0 :(得分:1)

也许filter (==2) $ map (head) [[2,2,2],[1,2,3],[2,2,3]]?但问题仍然含糊不清。

输出: [2,2]

编辑: 正如托马斯·M·杜布森(Thomas M. DuBuisson)所说,当根据其定义列表为空时,头部返回错误:

badHead :: a
badHead = errorEmptyList "head"

head []                 =  badHead

take !_ [] = []