From fbd541429ab4c04e680aeaea2e3f1540b44dca59 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Sun, 29 Aug 2021 15:08:06 +0100 Subject: Array map --- CHANGELOG.md | 2 +- src/gleam/javascript/array.gleam | 3 +++ test/gleam/javascript/array_test.gleam | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af4285a..04012f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,4 +3,4 @@ ## Unreleased - The `array` module was created with the `Array(element)` type and `to_list`, - `from_list` and `length` functions. + `from_list`, `map`, and `length` functions. diff --git a/src/gleam/javascript/array.gleam b/src/gleam/javascript/array.gleam index b2e5992..6c4819e 100644 --- a/src/gleam/javascript/array.gleam +++ b/src/gleam/javascript/array.gleam @@ -8,3 +8,6 @@ pub external fn from_list(List(element)) -> Array(element) = pub external fn length(Array(element)) -> Int = "../../ffi.js" "length" + +pub external fn map(Array(a), fn(a) -> b) -> Array(b) = + "../../ffi.js" "map" diff --git a/test/gleam/javascript/array_test.gleam b/test/gleam/javascript/array_test.gleam index 2f5e627..2f149a5 100644 --- a/test/gleam/javascript/array_test.gleam +++ b/test/gleam/javascript/array_test.gleam @@ -17,3 +17,17 @@ pub fn length_test() { array.from_list([]) |> array.length } + +pub fn map_test() { + assert [] = + [] + |> array.from_list + |> array.map(fn(a) { a + 1 }) + |> array.to_list + + assert [2, 3, 4] = + [1, 2, 3] + |> array.from_list + |> array.map(fn(a) { a + 1 }) + |> array.to_list +} -- cgit v1.2.3