diff options
author | Louis Pilfold <louis@lpil.uk> | 2021-08-29 15:08:06 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2021-08-29 15:08:06 +0100 |
commit | fbd541429ab4c04e680aeaea2e3f1540b44dca59 (patch) | |
tree | 75b0d5d5dc9a17f6195ea6e9aaa0264a9551663e | |
parent | 0d558ccee2ce740a3f2dea694527a8d1d21980cb (diff) | |
download | javascript-fbd541429ab4c04e680aeaea2e3f1540b44dca59.tar.gz javascript-fbd541429ab4c04e680aeaea2e3f1540b44dca59.zip |
Array map
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | src/gleam/javascript/array.gleam | 3 | ||||
-rw-r--r-- | test/gleam/javascript/array_test.gleam | 14 |
3 files changed, 18 insertions, 1 deletions
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 +} |