到目前为止,我有两个功能:
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:列表列表,“元组”,以便将行号附加到它们上,如
[(1,["a", "b", "b", "c"]), (2,["a", "dd"])]
第5阶段:单词列表(都在顶层),其中每个单词都与其行号配对,如
[(1,"a"), (1,"b"), (1,"b"), (1,"c"), (2,"a"), (2,"dd")]