Fxnk.Logic (Fxnk v0.1.4) View Source
Fxnk.Logic
are functions for dealing with booleans.
Link to this section Summary
Functions
and?
returns true if both inputs are the same, opposite of is_not/2
.
Curried both?/3
.
both?/3
takes an input and two predicate functions, returning true if both functions
are true when passed the input.
complement/1
returns the opposite of the boolean passed to it.
Curried default_to/2
default_to/2
takes two values and returns the right side value if the left side is false
or nil
Curried either/3
either?/3
takes an input and two predicate functions and returns true if either predicate is true.
Returns true if the two values passed to it are the same, false otherwise.
Curried equals_by/3
Takes a function and applies the function to both arguments, returning if they are equal.
Curried greater than function, returns a function that returns true if the second number passed in is greater than the first.
is_empty/1
returns true if passed an empty Map
or List
.
Curried is_not?/2
is_not/3
returns true if both inputs are not the same, opposite of and?/2
Curried less than function, returns a function that returns true if the second number passed in is less than the first.
Checks if a value is equal to nil
.
Checks if a value is not nil
.
or/2
returns true if one or both of its arguments are true.
Link to this section Functions
Specs
Curried and?/2
.
Examples
iex> isTwo? = Fxnk.Logic.and?(2)
iex> isTwo?.(2)
true
iex> isTwo?.(3)
false
Specs
and?
returns true if both inputs are the same, opposite of is_not/2
.
Examples
iex> Fxnk.Logic.and?(2, 2)
true
iex> Fxnk.Logic.and?("hello", "world")
false
Specs
Curried both?/3
.
Examples
iex> gt10lt20? = Fxnk.Logic.both?(fn x -> x > 10 end, fn x -> x < 20 end)
iex> gt10lt20?.(15)
true
iex> gt10lt20?.(30)
false
Specs
both?/3
takes an input and two predicate functions, returning true if both functions
are true when passed the input.
Examples
iex> Fxnk.Logic.both?(15, fn x -> x > 10 end, fn x -> x < 20 end)
true
iex> Fxnk.Logic.both?(30, fn x -> x > 10 end, fn x -> x < 20 end)
false
Specs
complement/1
returns the opposite of the boolean passed to it.
Examples
iex> Fxnk.Logic.complement(true)
false
iex> Fxnk.Logic.complement(false)
true
Specs
Curried default_to/2
Examples
iex> defaultTo42 = Fxnk.Logic.default_to(42)
iex> defaultTo42.(false)
42
iex> defaultTo42.(nil)
42
iex> defaultTo42.("thanks for all the fish")
"thanks for all the fish"
Specs
default_to/2
takes two values and returns the right side value if the left side is false
or nil
Examples
iex> false |> Fxnk.Logic.default_to(42)
42
iex> nil |> Fxnk.Logic.default_to(42)
42
iex> "hello, world" |> Fxnk.Logic.default_to(42)
"hello, world"
Specs
Curried either/3
Examples
iex> lt10orGt30? = Fxnk.Logic.either?(fn x -> x < 10 end, fn x -> x > 30 end)
iex> lt10orGt30?.(5)
true
iex> lt10orGt30?.(15)
false
Specs
either?/3
takes an input and two predicate functions and returns true if either predicate is true.
Examples
iex> Fxnk.Logic.either?(5, fn x -> x < 10 end, fn x -> x > 30 end)
true
iex> Fxnk.Logic.either?(15, fn x -> x < 10 end, fn x -> x > 30 end)
false
Specs
Curried equals/2
Example
iex> eq_three = Fxnk.Logic.equals(3)
iex> eq_three.(3)
true
iex> eq_three.(4)
false
Specs
Returns true if the two values passed to it are the same, false otherwise.
Example
iex> Fxnk.Logic.equals(%{foo: "foo"}, %{foo: "foo"})
true
iex> Fxnk.Logic.equals(%{foo: "foo"}, %{bar: "bar"})
false
Specs
Curried equals_by/3
Example
iex> eq_by_math_abs = Fxnk.Logic.equals_by(&Kernel.abs/1)
iex> eq_by_math_abs.(5).(-5)
true
Specs
Takes a function and applies the function to both arguments, returning if they are equal.
Example
iex> Fxnk.Logic.equals_by(&Kernel.abs/1, 5, -5)
true
Specs
Curried greater than function, returns a function that returns true if the second number passed in is greater than the first.
Examples
iex> greaterThan5? = Fxnk.Logic.gt?(5) iex> greaterThan5?.(19) true iex> greaterThan5?.(3) false
Specs
is_empty/1
returns true if passed an empty Map
or List
.
Examples
iex> Fxnk.Logic.is_empty([])
true
iex> Fxnk.Logic.is_empty(%{})
true
iex> Fxnk.Logic.is_empty([1,1,2,3,5,8])
false
Specs
Curried is_not?/2
Examples
iex> isNotThree = Fxnk.Logic.is_not?(3)
iex> isNotThree.(3)
false
iex> isNotThree.(4)
true
Specs
is_not/3
returns true if both inputs are not the same, opposite of and?/2
Examples
iex> Fxnk.Logic.is_not?(3, 3)
false
iex> Fxnk.Logic.is_not?(3, 4)
true
Specs
Curried less than function, returns a function that returns true if the second number passed in is less than the first.
Examples
iex> lessThan5? = Fxnk.Logic.lt?(5) iex> lessThan5?.(19) false iex> lessThan5?.(3) true
Specs
Checks if a value is equal to nil
.
Examples
iex> Fxnk.Logic.nil?(nil)
true
iex> Fxnk.Logic.nil?("not nil")
false
Specs
Checks if a value is not nil
.
Examples
iex> Fxnk.Logic.not_nil?(nil)
false
iex> Fxnk.Logic.not_nil?("not nil")
true
Specs
Curried or/2
Examples
iex> willBeTrue = Fxnk.Logic.or?(true) iex> willBeTrue.(false) true
Specs
or/2
returns true if one or both of its arguments are true.
Examples
iex> Fxnk.Logic.or?(true, false)
true
iex> Fxnk.Logic.or?(true, true)
true
iex> Fxnk.Logic.or?(false, false)
false