Haskell列表操作列表

时间:2017-06-08 05:20:58

标签: haskell

我试图遍历列表列表并对每个列表执行操作。

如果我有一个像

这样的清单
[[("vT",T),("vF",T)],[("vT",T),("vF",F)],[("vT",F),("vF",T)],[("vT",T),("vF",M)],[("vT",M),("vF",T)],[("vT",M),("vF",M)],[("vT",F),("vF",F)],[("vT",F),("vF",M)],[("vT",M),("vF",F)]]

如何创建一个设置x = [("vT",T),("vF",T)]的函数,以便我可以使用此x来执行操作,然后设置x = [("vT",T),("vF",F)]等等,然后让每个函数的答案都返回列表?

1 个答案:

答案 0 :(得分:2)

您可以使用map将功能应用于列表的每个元素 - 这是一个完整的示例:

data Tribool = T | F | M deriving Show

my_data = [
    [("vT",T),("vF",T)],
    [("vT",T),("vF",F)],
    [("vT",F),("vF",T)],
    [("vT",T),("vF",M)],
    [("vT",M),("vF",T)],
    [("vT",M),("vF",M)],
    [("vT",F),("vF",F)],
    [("vT",F),("vF",M)],
    [("vT",M),("vF",F)]
  ]

f x = reverse x -- example function

processed_data = map f my_data