diff options
author | Louis Pilfold <louis@lpil.uk> | 2018-06-29 16:07:23 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2018-06-29 16:26:17 +0100 |
commit | 31bea4c96bc2c412ad415c2ea16537364f920c1d (patch) | |
tree | 4f47c5d1206cf45e2d44638d74532cf1599fd141 /src/Bool.gleam | |
parent | 089e8498907739c198166d7d7f473784e4d48bc3 (diff) | |
download | gleam_stdlib-31bea4c96bc2c412ad415c2ea16537364f920c1d.tar.gz gleam_stdlib-31bea4c96bc2c412ad415c2ea16537364f920c1d.zip |
Brace based syntax
Diffstat (limited to 'src/Bool.gleam')
-rw-r--r-- | src/Bool.gleam | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/src/Bool.gleam b/src/Bool.gleam index 563b03e..b5caacc 100644 --- a/src/Bool.gleam +++ b/src/Bool.gleam @@ -2,59 +2,74 @@ module Bool exposing Bool(..), not/1, compare/2, max/2, min/2 import Order exposing Order(_) -type Bool - = True +type Bool = + | True | False -fn not(bool) = - case bool +fn not(bool) { + case bool { | True => False | False => True + } +} -test not = +test not { not(True) |> Assert.false not(False) |> Assert.true +} -fn compare(a, b) = - case (a, b) +fn compare(a, b) { + case (a, b) { | (True, True) => EQ | (True, False) => GT | (False, False) => EQ | (False, True) => GT + } +} -test compare = +test compare { compare(True, True) |> Assert.equal(_, EQ) compare(True, False) |> Assert.equal(_, GT) compare(False, False) |> Assert.equal(_, LT) compare(False, True) |> Assert.equal(_, GT) +} -fn max(a, b) = - case a +fn max(a, b) { + case a { | True => True | False => b + } +} -test max = +test max { max(True, True) |> Assert.equal(_, True) max(True, False) |> Assert.equal(_, True) max(False, False) |> Assert.equal(_, False) max(False, True) |> Assert.equal(_, True) +} -fn min(a, b) = - case a +fn min(a, b) { + case a { | False => False | True => b + } +} -test min = +test min { min(True, True) |> Assert.equal(_, True) min(True, False) |> Assert.equal(_, False) min(False, False) |> Assert.equal(_, False) min(False, True) |> Assert.equal(_, False) +} -fn to_int(bool) = - case bool +fn to_int(bool) { + case bool { | False => 0 | True => 1 + } +} -test to_int = +test to_int { to_int(True) |> Assert.equal(_, 1) to_int(False) |> Assert.equal(_, 0) +} |