diff options
author | Quinn Wilton <wilton@synopsys.com> | 2020-12-02 11:43:57 -0800 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-12-02 20:13:15 +0000 |
commit | ba19b9a9b57d8090c9224311bb86309d90cc424b (patch) | |
tree | eea893ef8c35c931a51231fb8b3e5953f7db631a | |
parent | 88090877348a4f0c84b3ef497bab98a9a1e39e23 (diff) | |
download | gleam_stdlib-ba19b9a9b57d8090c9224311bb86309d90cc424b.tar.gz gleam_stdlib-ba19b9a9b57d8090c9224311bb86309d90cc424b.zip |
Add bool.nand
-rw-r--r-- | src/gleam/bool.gleam | 25 | ||||
-rw-r--r-- | test/gleam/bool_test.gleam | 14 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/gleam/bool.gleam b/src/gleam/bool.gleam index 707d295..0aa9939 100644 --- a/src/gleam/bool.gleam +++ b/src/gleam/bool.gleam @@ -55,6 +55,31 @@ pub fn nor(a: Bool, b: Bool) -> Bool { } } +/// Returns the nand of two bools +/// +/// ## Examples +/// +/// > nor(False, False) +/// True +/// +/// > nor(False, True) +/// True +/// +/// > nor(True, False) +/// True +/// +/// > nor(True, True) +/// False +/// +pub fn nand(a: Bool, b: Bool) -> Bool { + case a, b { + False, False -> True + False, True -> True + True, False -> True + True, True -> False + } +} + /// Returns the exclusive or of two bools /// /// ## Examples diff --git a/test/gleam/bool_test.gleam b/test/gleam/bool_test.gleam index ad47ea2..3edea25 100644 --- a/test/gleam/bool_test.gleam +++ b/test/gleam/bool_test.gleam @@ -24,6 +24,20 @@ pub fn nor_test() { |> should.be_false } +pub fn nand_test() { + bool.nand(False, False) + |> should.be_true + + bool.nand(False, True) + |> should.be_true + + bool.nand(True, False) + |> should.be_true + + bool.nand(True, True) + |> should.be_false +} + pub fn exclusive_or_test() { bool.exclusive_or(True, True) |> should.be_false |