[erlang-questions] Proposal: add lists:intersperse/2 and lists:intercalate/2

Mike French <>
Tue Mar 8 08:42:35 CET 2016

I think the original suggestion was not 'intercalculate', but 'intercalate', which may be accurate, but is very obscure, even for native English speakers.

'Join' is both vague and specific, since it already has many specialized uses in algebra (e.g. lattices have 'meet' and 'join'), which Haskell has picked up.

I don't have a dog in this fight, but tentatively suggest 'delimit', which is ugly, but comprehensible based on the common usage of 'delimiter'.


From:  <> on behalf of Chandru <>
Sent: Tuesday, March 8, 2016 10:24
To: Loïc Hoguin
Cc: Erlang (E-mail)
Subject: Re: [erlang-questions] Proposal: add lists:intersperse/2 and lists:intercalate/2

On 7 March 2016 at 16:04, Loïc Hoguin <<mailto:>> wrote:
On 03/07/2016 04:53 PM, Garrett Smith wrote:
On Mon, Mar 7, 2016 at 9:28 AM Jesper Louis Andersen
<mailto:<mailto:>>> wrote:

    On Mon, Mar 7, 2016 at 4:08 PM, Garrett Smith <<mailto:>
    <mailto:<mailto:>>> wrote:

        It's vague, as is intercalculate, but as it's superficially
        doing what string "join" does with chars has some precedence
        within Erlang. I wouldn't call it hopeless.

    I'm probably leaning away from using 'join' at this point, since
    'join' already have type

    join :: Monad M => m (m a) -> m a

    so from an FP perspective, that name is highly confusing since it is
    in use in monadic context and is used to join monadic data into its
    own monadic context. For a list, join is essentially 'append':

    Prelude Control.Monad> join ["a", "b", "c"]

    But join is monadic, so `join $ Just Nothing` evaluates to `Nothing`.

Sigh. Okay, so the future naming discussions will involve with word
monad and monadic?

You've seen the discussions around adoption and the disruptive influence
of Elixir?

For whatever reason FP pedantry is not a draw for me. When I need
inspiration I look to Python. Maybe that's the wrong direction and we
need to drive our community through more gates.

I am completely with you on that. If the function was called intercalculate I'd never find it and would continue writing my own.

I second this. I'm part of the vast number of unwashed masses who've never heard of the term intercalculate, and if I came across it in a developer's code would think that they were being a bit too clever. Like many others I have written this piece of code several times and invariably named it 'concat_with_separator' - a mouthful but it conveys (at least to me) what exactly the function is doing.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160308/93b15ab5/attachment.html>

More information about the erlang-questions mailing list