Haskell:使用元组和预先存在的嵌套列表

时间:2015-09-15 02:12:08

标签: list function haskell tuples

到目前为止,我有这两个功能:

splitLines :: String -> [[String]]
splitLines splitLinesStr = splitWords (lines splitLinesStr)

splitWords :: [String] -> [[String]]
splitWords splitWordStr = map words splitWordStr

两者都有助于完成步骤1-3。但是我不知道如何在列表中创建一个int元组和一个列表(如步骤4所述)。怎么会这样做?

阶段1:原始输入,例如

"a&b b c.\na dd\n"

阶段2:原始输入,分为行列表,如

["a&b b c.", "a dd"]

阶段3:行列表,进一步拆分为单词列表列表,如

[["a", "b", "b", "c"], ["a", "dd"]]

阶段4:列表列表,“tupled”以便将行号附加到它们,如

[(1,["a", "b", "b", "c"]), (2,["a", "dd"])]

阶段5:单词列表(全部位于顶层),其中每个单词与其行号配对,如

[(1,"a"), (1,"b"), (1,"b"), (1,"c"), (2,"a"), (2,"dd")]

1 个答案:

答案 0 :(得分:1)

提示1:您可以使用以下语法生成无限的整数列表:

[1..]

提示2:有一个名为zip的函数具有非常具有暗示性的类型:

zip :: [a] -> [b] -> [(a, b)]