给定 erlang 列表是L = [[ [], [1,3], [4,5] ]].
输出预期是[[1,3], [4,5]]
我尝试过,lists:flatten/1但它会将扁平列表返回为[1,3,4,5].
不,flatten 函数返回一个包含非列表元素的列表,它消除了输入列表中的所有列表。如果您使用了有效的算法,则不需要展平任何列表,因此创建列表的最佳方法是在列表的开头添加元素并尝试从不使用++and--运算符。
这个问题是模棱两可的,因为它并没有真正告诉我们需要如何进行扁平化。仅从您的输入/输出示例来看,您似乎只想展平一个级别并忽略空列表。这可以通过以下方式实现:
1> lists:filter(fun (X) -> X /= [] end, lists:append([[ [], [1,3], [4,5] ]])).
[[1,3],[4,5]]
但人们也可以想象其他符合这些标准的扁平化。希望这能让你开始!