aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2024-02-22 14:08:30 +0000
committerLouis Pilfold <louis@lpil.uk>2024-02-22 14:08:30 +0000
commit6a701d1b1943891ee866e22c5d84800ade8c09f1 (patch)
tree27a9d0c338f47f59baca6310da8f8bb8d9d0e940
parentf36ef4d48887ae490b00f12c032ef5f5016f8f8a (diff)
downloadgleam_stdlib-6a701d1b1943891ee866e22c5d84800ade8c09f1.tar.gz
gleam_stdlib-6a701d1b1943891ee866e22c5d84800ade8c09f1.zip
Deprecate constant, compose
-rw-r--r--CHANGELOG.md5
-rw-r--r--src/gleam/function.gleam8
-rw-r--r--test/gleam/function_test.gleam34
3 files changed, 7 insertions, 40 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 846dc7e..af7ed73 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
# Changelog
+## Unreleased
+
+- The `compose` and `constant` functions in the `function` module have been
+ deprecated in favour of the `fn` literal syntax.
+
## v0.35.1 - 2024-02-15
- Fixed a warning on the JavaScript target.
diff --git a/src/gleam/function.gleam b/src/gleam/function.gleam
index 180b6b2..6f42455 100644
--- a/src/gleam/function.gleam
+++ b/src/gleam/function.gleam
@@ -1,6 +1,4 @@
-/// Takes two functions and chains them together to form one function that
-/// takes the input from the first and returns the output of the second.
-///
+@deprecated("Use a fn literal instead, it is easier to understand")
pub fn compose(fun1: fn(a) -> b, fun2: fn(b) -> c) -> fn(a) -> c {
fn(a) { fun2(fun1(a)) }
}
@@ -103,9 +101,7 @@ pub fn identity(x: a) -> a {
x
}
-/// Takes a single argument and returns a new function that
-/// ignores its argument and always returns the input value.
-///
+@deprecated("Use a fn literal instead, it is easier to understand")
pub fn constant(value: a) -> fn(b) -> a {
fn(_) { value }
}
diff --git a/test/gleam/function_test.gleam b/test/gleam/function_test.gleam
index 26919f2..ce3c08f 100644
--- a/test/gleam/function_test.gleam
+++ b/test/gleam/function_test.gleam
@@ -1,37 +1,9 @@
import gleam/function
import gleam/int
-import gleam/list
import gleam/pair
-import gleam/result
import gleam/should
import gleam/string
-pub fn compose_test() {
- let add_two = fn(int: Int) { int + 2 }
- let add_three = fn(int: Int) { int + 3 }
-
- let add_five = function.compose(add_two, add_three)
-
- 1
- |> add_five
- |> should.equal(6)
-
- // Takes a list of ints and returns the first as a string (if there is one, or
- // else "0" if there is not)
- let first_to_string =
- list.first
- |> function.compose(result.unwrap(_, 0))
- |> function.compose(int.to_string)
-
- [1]
- |> first_to_string
- |> should.equal("1")
-
- []
- |> first_to_string
- |> should.equal("0")
-}
-
pub fn curry2_test() {
let fun = fn(a, b) { a + b }
let curried = function.curry2(fun)
@@ -108,12 +80,6 @@ pub fn identity_test() {
|> should.equal(#(1, 2.0))
}
-pub fn constant_test() {
- #(1, 2)
- |> pair.map_first(function.constant(42))
- |> should.equal(#(42, 2))
-}
-
pub fn tap_test() {
"Thanks Joe & Louis"
|> function.tap(fn(s: String) {