--spec bin_join([binary()], binary()) ->
- binary().
-bin_join([] , <<_/binary>> ) -> <<>>;
-bin_join([<<B/binary>> | []] , <<_/binary>> ) -> B;
-bin_join([<<B/binary>> | [_|_]=Bins], <<Sep/binary>>) ->
- BinsBin = bin_join(Bins, Sep),
- <<B/binary, Sep/binary, BinsBin/binary>>.
+-spec interleave(iolist(), iodata()) ->
+ iolist().
+interleave([], _) -> [];
+interleave([X], _) -> [X];
+interleave([X|Xs], Sep) ->
+ [X, Sep | interleave(Xs, Sep)].