# Module `pl.operator`

Lua operators available as functions.

(similar to the Python module of the same name)

There is a module field `optable` which maps the operator strings onto these functions, e.g. `operator.optable['()']==operator.call`

Operator strings like '>' and '{}' can be passed to most Penlight functions expecting a function argument.

Dependencies: `pl.utils`

## Functions

call (fn, ...) | apply function to some arguments **()**
index (t, k) | get the indexed value from a table **[]**
eq (a, b) | returns true if arguments are equal **==**
neq (a, b) | returns true if arguments are not equal **~=**
lt (a, b) | returns true if a is less than b **<**
le (a, b) | returns true if a is less or equal to b **<=**
gt (a, b) | returns true if a is greater than b **>**
ge (a, b) | returns true if a is greater or equal to b **>=**
len (a) | returns length of string or table **#**
add (a, b) | add two values **+**
sub (a, b) | subtract b from a **-**
mul (a, b) | multiply two values __*__
div (a, b) | divide first value by second **/**
pow (a, b) | raise first to the power of second **^**
mod (a, b) | modulo; remainder of a divided by b **%**
concat (a, b) | concatenate two values (either strings or `__concat` defined) **..**
unm (a) | return the negative of a value **-**
lnot (a) | false if value evaluates as true **not**
land (a, b) | true if both values evaluate as true **and**
lor (a, b) | true if either value evaluate as true **or**
table (...) | make a table from the arguments **{}**
match (a, b) | match two strings **~**.
nop (...) | the null operation.

## Tables

optable | Map from operator symbol to function.

## Functions

call (fn, ...)
  apply function to some arguments **()**

  ### Parameters:

  - fn a function or callable object
  - ... arguments
index (t, k)
  get the indexed value from a table **[]**

  ### Parameters:

  - t a table or any indexable object
  - k the key
eq (a, b)
  returns true if arguments are equal **==**

  ### Parameters:

  - a value
  - b value
neq (a, b)
  returns true if arguments are not equal **~=**

  ### Parameters:

  - a value
  - b value
lt (a, b)
  returns true if a is less than b **<**

  ### Parameters:

  - a value
  - b value
le (a, b)
  returns true if a is less or equal to b **<=**

  ### Parameters:

  - a value
  - b value
gt (a, b)
  returns true if a is greater than b **>**

  ### Parameters:

  - a value
  - b value
ge (a, b)
  returns true if a is greater or equal to b **>=**

  ### Parameters:

  - a value
  - b value
len (a)
  returns length of string or table **#**

  ### Parameters:

  - a a string or a table
add (a, b)
  add two values **+**

  ### Parameters:

  - a value
  - b value
sub (a, b)
  subtract b from a **-**

  ### Parameters:

  - a value
  - b value
mul (a, b)
  multiply two values __*__

  ### Parameters:

  - a value
  - b value
div (a, b)
  divide first value by second **/**

  ### Parameters:

  - a value
  - b value
pow (a, b)
  raise first to the power of second **^**

  ### Parameters:

  - a value
  - b value
mod (a, b)
  modulo; remainder of a divided by b **%**

  ### Parameters:

  - a value
  - b value
concat (a, b)
  concatenate two values (either strings or `__concat` defined) **..**

  ### Parameters:

  - a value
  - b value
unm (a)
  return the negative of a value **-**

  ### Parameters:

  - a value
lnot (a)
  false if value evaluates as true **not**

  ### Parameters:

  - a value
land (a, b)
  true if both values evaluate as true **and**

  ### Parameters:

  - a value
  - b value
lor (a, b)
  true if either value evaluate as true **or**

  ### Parameters:

  - a value
  - b value
table (...)
  make a table from the arguments **{}**

  ### Parameters:

  - ... non-nil arguments

  ### Returns:

  a table
match (a, b)
  match two strings **~**. uses string.find

  ### Parameters:

  - a
  - b
nop (...)
  the null operation.

  ### Parameters:

  - ... arguments

  ### Returns:

  the arguments

## Tables

optable
  Map from operator symbol to function. Most of these map directly from operators; But note these extras

  * __'()'__ `call` * __'[]'__ `index` * __'{}'__ `table` * __'~'__ `match`

  ### Fields:

  - operator

generated by LDoc 1.4.3 Last updated Tue, 18 Aug 2015 11:21:53 +0200