【发布时间】:2014-07-07 13:09:00
【问题描述】:
有没有办法像这样获取 Erlang 列表:
Values = "Some||pipe|delimited|values"
并将其转换为子列表列表,保留空子列表?结果列表如下所示:
["Some", [], "pipe", "delimited", "values"]
(在控制台上,空列表打印为[] 而不是"")。我尝试使用string:tokens,但它不保留空子列表:
string:tokens("Some||pipe|delimited|values", "|").
%> ["Some","pipe","delimited","values"]
有没有简单的方法来做到这一点?也许这可以通过列表推导实现?我对 Erlang 比较陌生,因此非常感谢任何建议。
【问题讨论】:
-
列表推导是不可能的,因为它们是孤立地处理每个元素的。您可以编写一个递归函数,使用
lists:splitwith从列表中获取元素。