Packages
gleam_stdlib
0.26.1
1.0.3
1.0.2
1.0.1
1.0.0
0.71.0
0.70.0
0.69.0
0.68.1
0.68.0
0.67.1
0.67.0
0.65.0
0.64.0
0.63.2
0.63.1
0.63.0
0.62.1
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc1
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.4.0-rc1
0.3.1
0.3.0
0.2.0
retired
A standard library for the Gleam programming language
Current section
Files
Jump to
Current section
Files
src/gleam@bool.erl
-module(gleam@bool).
-compile(no_auto_import).
-export(['and'/2, 'or'/2, negate/1, nor/2, nand/2, exclusive_or/2, exclusive_nor/2, compare/2, max/2, min/2, to_int/1, to_string/1]).
-spec 'and'(boolean(), boolean()) -> boolean().
'and'(A, B) ->
A andalso B.
-spec 'or'(boolean(), boolean()) -> boolean().
'or'(A, B) ->
A orelse B.
-spec negate(boolean()) -> boolean().
negate(Bool) ->
case Bool of
true ->
false;
false ->
true
end.
-spec nor(boolean(), boolean()) -> boolean().
nor(A, B) ->
case {A, B} of
{false, false} ->
true;
{false, true} ->
false;
{true, false} ->
false;
{true, true} ->
false
end.
-spec nand(boolean(), boolean()) -> boolean().
nand(A, B) ->
case {A, B} of
{false, false} ->
true;
{false, true} ->
true;
{true, false} ->
true;
{true, true} ->
false
end.
-spec exclusive_or(boolean(), boolean()) -> boolean().
exclusive_or(A, B) ->
case {A, B} of
{false, false} ->
false;
{false, true} ->
true;
{true, false} ->
true;
{true, true} ->
false
end.
-spec exclusive_nor(boolean(), boolean()) -> boolean().
exclusive_nor(A, B) ->
case {A, B} of
{false, false} ->
true;
{false, true} ->
false;
{true, false} ->
false;
{true, true} ->
true
end.
-spec compare(boolean(), boolean()) -> gleam@order:order().
compare(A, B) ->
case {A, B} of
{true, true} ->
eq;
{true, false} ->
gt;
{false, false} ->
eq;
{false, true} ->
lt
end.
-spec max(boolean(), boolean()) -> boolean().
max(A, B) ->
case A of
true ->
true;
false ->
B
end.
-spec min(boolean(), boolean()) -> boolean().
min(A, B) ->
case A of
false ->
false;
true ->
B
end.
-spec to_int(boolean()) -> integer().
to_int(Bool) ->
case Bool of
false ->
0;
true ->
1
end.
-spec to_string(boolean()) -> binary().
to_string(Bool) ->
case Bool of
false ->
<<"False"/utf8>>;
true ->
<<"True"/utf8>>
end.