1
0
Fork 0
blog.kempkens.io/_posts/2014-02-16-joining-a-list-of-binaries-in-erlang.md

38 lines
1.2 KiB
Markdown
Raw Normal View History

2014-03-23 19:40:19 +00:00
---
layout: post
title: Joining a List of Binaries in Erlang
description: "Description and implementation of a function that joins a list of binaries."
category: posts
2014-03-23 19:40:19 +00:00
tags: [erlang, programming, english]
image:
feature: header/abstract-3.jpg
2014-03-23 19:40:19 +00:00
credit: dargadgetz
creditlink: http://www.dargadgetz.com/ios-7-abstract-wallpaper-pack-for-iphone-5-and-ipod-touch-retina/
comments: true
share: true
---
The binary module in Erlang provides an easy way to split binaries using `split/2,3`, but what if you want to join a list of binaries back together?
There is no built-in function to do this, so I've decided to write my own.
{% highlight erlang linenos %}
-spec binary_join([binary()], binary()) -> binary().
binary_join([], _Sep) ->
<<>>;
binary_join([Part], _Sep) ->
Part;
binary_join(List, Sep) ->
InitAcc = hd(List),
lists:foldr(fun (Value, Acc) -> <<Acc/binary, Sep/binary, Value/binary>> end, InitAcc, tl(List)).
{% endhighlight %}
It works just like you would expect:
{% highlight erlang %}
binary_join([<<"Hello">>, <<"World">>], <<", ">>) % => <<"Hello, World">>
binary_join([<<"Hello">>], <<"...">>) % => <<"Hello">>
{% endhighlight %}
Hope you find this useful!