diff options
author | Louis Pilfold <louis@lpil.uk> | 2020-03-05 11:24:57 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-03-05 11:24:57 +0000 |
commit | e8b2a22b47a0a7677aae55d25a2bacf3969cc788 (patch) | |
tree | f3cef3896d7bce0b901309d76141c74373bd75bc | |
parent | 063c640b5e59c00262fd17b62c33dc470c1e1863 (diff) | |
download | gleam_stdlib-e8b2a22b47a0a7677aae55d25a2bacf3969cc788.tar.gz gleam_stdlib-e8b2a22b47a0a7677aae55d25a2bacf3969cc788.zip |
string.concat
-rw-r--r-- | gen/src/gleam@string.erl | 5 | ||||
-rw-r--r-- | gen/test/gleam@string_test.erl | 8 | ||||
-rw-r--r-- | src/gleam/string.gleam | 6 | ||||
-rw-r--r-- | test/gleam/string_test.gleam | 8 |
4 files changed, 25 insertions, 2 deletions
diff --git a/gen/src/gleam@string.erl b/gen/src/gleam@string.erl index 722ea09..c94fb9f 100644 --- a/gen/src/gleam@string.erl +++ b/gen/src/gleam@string.erl @@ -1,7 +1,7 @@ -module(gleam@string). -compile(no_auto_import). --export([length/1, lowercase/1, uppercase/1, compare/2, reverse/1, split/2, replace/3, append/2]). +-export([length/1, lowercase/1, uppercase/1, compare/2, reverse/1, split/2, replace/3, append/2, concat/1]). length(A) -> string:length(A). @@ -33,3 +33,6 @@ append(First, Second) -> gleam@iodata:to_string( gleam@iodata:append(gleam@iodata:new(First), Second) ). + +concat(Strings) -> + gleam@iodata:to_string(gleam@iodata:from_strings(Strings)). diff --git a/gen/test/gleam@string_test.erl b/gen/test/gleam@string_test.erl index e28f696..777c498 100644 --- a/gen/test/gleam@string_test.erl +++ b/gen/test/gleam@string_test.erl @@ -1,7 +1,7 @@ -module(gleam@string_test). -compile(no_auto_import). --export([length_test/0, lowercase_test/0, uppercase_test/0, reverse_test/0, split_test/0, replace_test/0, append_test/0, compare_test/0]). +-export([length_test/0, lowercase_test/0, uppercase_test/0, reverse_test/0, split_test/0, replace_test/0, append_test/0, compare_test/0, concat_test/0]). length_test() -> gleam@expect:equal(gleam@string:length(<<"ß↑e̊">>), 3), @@ -45,3 +45,9 @@ compare_test() -> gleam@expect:equal(gleam@string:compare(<<"a">>, <<"A">>), gt), gleam@expect:equal(gleam@string:compare(<<"A">>, <<"B">>), lt), gleam@expect:equal(gleam@string:compare(<<"t">>, <<"ABC">>), gt). + +concat_test() -> + gleam@expect:equal( + gleam@string:concat([<<"Hello">>, <<", ">>, <<"world!">>]), + <<"Hello, world!">> + ). diff --git a/src/gleam/string.gleam b/src/gleam/string.gleam index 92d46b6..14619bf 100644 --- a/src/gleam/string.gleam +++ b/src/gleam/string.gleam @@ -42,3 +42,9 @@ pub fn append(to first: String, suffix second: String) -> String { |> iodata.append(_, second) |> iodata.to_string } + +pub fn concat(strings: List(String)) -> String { + strings + |> iodata.from_strings + |> iodata.to_string +} diff --git a/test/gleam/string_test.gleam b/test/gleam/string_test.gleam index 15a30f8..f4f9089 100644 --- a/test/gleam/string_test.gleam +++ b/test/gleam/string_test.gleam @@ -66,3 +66,11 @@ pub fn compare_test() { string.compare("t", "ABC") |> expect.equal(_, order.Gt) } + +pub fn concat_test() { + [ + "Hello", ", ", "world!", + ] + |> string.concat + |> expect.equal(_, "Hello, world!") +} |