[erlang-questions] Proposal: add lists:intersperse/2 and lists:intercalate/2
Wed Mar 2 18:02:49 CET 2016
On 3/2/16 9:47 AM, Jesper Louis Andersen wrote:
> Hi Erlangers,
> I'd really like to add two functions to the lists module from Haskell:
> intersperse(List, Seperator) produces a list where each element is
> separated by separator, i.e.
> X = [1,2,3]
> [1, x, 2, x, 3] = lists:intersperse(X, x),
> and it's cousin, intercalate(ListOfLists, Separator) is
> append(intersperse(ListOfLists, Seperator)), i.e,
> Y = ["a", "b", "c"]
> "a, b, c" = lists:intercalate(Y, ", "),
> The implementations are straightforward and easy to write tests for, even
> property based tests if needed.
> The rationale for this proposal is that I find myself implementing this
> function again and again in every project I write, and it is highly
> generic. It belongs in a typical list module. OCaml libraries add it.
> Haskell's Data.List has it. I believe Erlang, being a practical language,
> should have it as well.
Though I prefer the name "interleave" to "intersperse", since its
meaning is more-precise and closer to the intended behavior here.
More information about the erlang-questions