0

给定 erlang 列表是L = [[ [], [1,3], [4,5] ]]. 输出预期是[[1,3], [4,5]]

我尝试过,lists:flatten/1但它会将扁平列表返回为[1,3,4,5].

4

2 回答 2

0

不,flatten 函数返回一个包含非列表元素的列表,它消除了输入列表中的所有列表。如果您使用了有效的算法,则不需要展平任何列表,因此创建列表的最佳方法是在列表的开头添加元素并尝试从不使用++and--运算符。

于 2020-06-22T00:57:20.977 回答
0

这个问题是模棱两可的,因为它并没有真正告诉我们需要如何进行扁平化。仅从您的输入/输出示例来看,您似乎只想展平一个级别并忽略空列表。这可以通过以下方式实现:

1> lists:filter(fun (X) -> X /= [] end, lists:append([[ [], [1,3], [4,5] ]])).
[[1,3],[4,5]]

但人们也可以想象其他符合这些标准的扁平化。希望这能让你开始!

于 2020-06-21T19:02:47.727 回答