Module std.operator
Functional forms of Lua operators.
Functions
concat (a, b)
Stringify and concatenate arguments.
conj (a, b)
Return the logical conjunction of the arguments.
diff (a, b)
Return the difference of the arguments.
disj (a, b)
Return the logical disjunction of the arguments.
eq (a, b)
Return the equality of the arguments.
get (t, k)
Dereference a table.
gt (a, b)
Return whether the arguments are in descending order.
gte (a, b)
Return whether the arguments are not in ascending order.
lt (a, b)
Return whether the arguments are in ascending order.
lte (a, b)
Return whether the arguments are not in descending order.
mod (a, b)
Return the modulus of the arguments.
neg (a)
Return the logical negation of the arguments.
neq (a, b)
Return the inequality of the arguments.
pow (a, b)
Return the exponent of the arguments.
prod (a, b)
Return the product of the arguments.
quot (a, b)
Return the quotient of the arguments.
set (t, k, v)
Set a table element, honoring metamethods.
sum (a, b)
Return the sum of the arguments.
Functions
Methods- concat (a, b)
-
Stringify and concatenate arguments.
Parameters:
- a an argument
- b another argument
Returns:
-
concatenation of stringified arguments.
Usage:
--> "=> 1000010010" functional.foldl (concat, "=> ", {10000, 100, 10})
- conj (a, b)
-
Return the logical conjunction of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
-
logical a and b
Usage:
--> true functional.foldl (conj, {true, 1, "false"})
- diff (a, b)
-
Return the difference of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
-
the difference between a and b
Usage:
--> 890 functional.foldl (diff, {10000, 100, 10})
- disj (a, b)
-
Return the logical disjunction of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
-
logical a or b
Usage:
--> true functional.foldl (disj, {true, 1, false})
- eq (a, b)
-
Return the equality of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
true
if a is b, otherwisefalse
- get (t, k)
-
Dereference a table.
Parameters:
- t table a table
- k a key to lookup in t
Returns:
-
value stored at t[k] if any, otherwise
nil
Usage:
--> 4 functional.foldl (get, {1, {{2, 3, 4}, 5}}, {2, 1, 3})
- gt (a, b)
-
Return whether the arguments are in descending order.
Parameters:
- a an argument
- b another argument
Returns:
true
if a is greater then b, otherwisefalse
- gte (a, b)
-
Return whether the arguments are not in ascending order.
Parameters:
- a an argument
- b another argument
Returns:
true
if a is not greater then b, otherwisefalse
- lt (a, b)
-
Return whether the arguments are in ascending order.
Parameters:
- a an argument
- b another argument
Returns:
true
if a is less then b, otherwisefalse
- lte (a, b)
-
Return whether the arguments are not in descending order.
Parameters:
- a an argument
- b another argument
Returns:
true
if a is not greater then b, otherwisefalse
- mod (a, b)
-
Return the modulus of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
-
the modulus of a and b
Usage:
--> 3 functional.foldl (mod, {65536, 100, 11})
- neg (a)
-
Return the logical negation of the arguments.
Parameters:
- a an argument
Returns:
-
not a
Usage:
--> {true, false, false, false} functional.bind (functional.map, {std.ielems, neg}) {false, true, 1, 0}
- neq (a, b)
-
Return the inequality of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
false
if a is b, otherwisetrue
Usage:
--> true local f = require "std.functional" table.empty (f.filter (f.bind (neq, {6}), std.ielems, {6, 6, 6})
- pow (a, b)
-
Return the exponent of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
-
the a to the power of b
Usage:
--> 4096 functional.foldl (pow, {2, 3, 4})
- prod (a, b)
-
Return the product of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
-
the product of a and b
Usage:
--> 10000000 functional.foldl (prod, {10000, 100, 10})
- quot (a, b)
-
Return the quotient of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
-
the quotient a and b
Usage:
--> 1000 functional.foldr (quot, {10000, 100, 10})
- set (t, k, v)
-
Set a table element, honoring metamethods.
Parameters:
- t table a table
- k a key to lookup in t
- v a value to set for k
Returns:
-
table
t
Usage:
-- destructive table merge: --> {"one", bar="baz", two=5} functional.reduce (set, {"foo", bar="baz"}, {"one", two=5})
- sum (a, b)
-
Return the sum of the arguments.
Parameters:
- a an argument
- b another argument
Returns:
-
the sum of the a and b
Usage:
--> 10110 functional.foldl (sum, {10000, 100, 10})