我有一个源代码列表,看起来像这样:
let source = ["A", "B", "%", "C", "Y", "%"]
我希望遍历每个元素,每次碰到符号“%”时,应将前面列表中的每个元素放入子列表中。结果应如下所示。
let result = [["A", "B"], ["C", "Y"]]
我认为我需要使用列表的折叠函数,但我的结果类型是字符串列表而不是字符串列表列表。
let folder (acc, current) item =
match item with
| "" -> (current @ acc, [])
| _ -> (acc, current @ [item])
let result = source
|> List.fold folder ([], [])
|> fun (a,_) -> a
有什么想法吗?