List of operators

Operators are listed in ASCII order. See also the operator precedence chart.

Meta-operators

The following operators change the way other operators are used, when applied on them.

$ Fold, \$ Scan: occur before a binary operator; the resulting compound operator is unary, with the same precedence as the original binary operator

* Map: occurs after a unary operator; arity and precedence remain the same

: Modify-assign: occurs after a unary, binary, or ternary operator; the resulting compound operator has the same arity but is right-associative and has the same precedence as :

Operators

!a Logical not

a!=b Numeric not equal

#a Length

a#<b Length less than

a#=b Length equal

a#>b Length greater than

a%b Modulo

%a Modulo 2

a&b Logical and (short-circuiting)

a*b Multiplication; if one operand is a Pattern, regex repetition

a**b Alias for binary E

**a Alias for unary E

a+b Addition; if both operands are Patterns, regex concatenation

+a Cast Scalar as number; with Pattern, repeat regex 1 or more times

++a Increment (always comes before operand, never a++); higher-precedence version of U

a,b Range; if both operands are Patterns, regex alternation

,a Range from 0 up to; set multiline flag on Pattern

a-b Subtraction

-a Numeric negation; set case-insensitive flag on Pattern

--a Decrement (always comes before operand, never a--); higher-precedence version of D

a.b Concatenation

.a Set dotall flag on Pattern; no-op on other data types

a/b Division

/a Reciprocal

a//b Integer division

a:b Assign b to a; if a is a list of lvalues, pair them with values from b and assign one by one (destructuring assignment)

a::b Swap values of a and b (supports destructuring assignment); expression evaluates to (new value of) a

a<b Numeric less than

a<=b Numeric less than or equal

a<>b Group iterable a into sections of length b; with negative b, groups right-to-left

<>a Group iterable a into sections of length 2

a<|b Strip characters in b from right of a

<|a Strip whitespace from right of a

a=b Numeric equal

a==b Exactly equal

a>b Numeric greater than

a>=b Numeric greater than or equal

a>|b Round a up to smallest multiple of b that is >= a

>|a Round a up to smallest integer that is >= a (ceil)

a?bc Ternary If operator (short-circuiting)

a@b Get item/slice at index

@a Get item at index 0

a@*b Find all indices of item b in a (find Scalar in Range, Pattern match or Scalar substring in Scalar, or any type in List)

a@<b Slice of iterable left of index b

@<a Slice of iterable left of index -1 (i.e. all but the last item)

a@>b Slice of iterable right of index b

@>a Slice of iterable right of index 0 (i.e. all but the first item)

a@?b Find first index of item b in a (find Scalar in Range, Pattern match or Scalar substring in Scalar, or any type in List)

Aa Convert first char of Scalar to ASCII value (or Unicode point); set ASCII-only flag on Pattern

ABa Absolute value of number

aADb Absolute difference (i.e. absolute value of the difference) of two numbers

aAEb List a with element b appended

aALb List a with List b appended

aATb Arctan2 (with a being the y-coordinate and b being the x-coordinate)

ATa Arctangent

aBAb Bitwise and

BLa Bitlength

aBNb Bitwise not

aBOb Bitwise or

aBXb Bitwise xor

Ca Convert ASCII value/Unicode point to character

aCBb List of all combinations of b elements from iterable a

aCGb Coordinate grid of a rows by b columns ([0 0] to [a b])

CGa Coordinate grid of a rows by a columns ([0 0] to [a a])

aCHb Chop iterable a into b pieces of roughly equal length

CHa Chop iterable a into 2 pieces of roughly equal length

aCMb Numeric comparison (-1 if a < b, 0 if a = b, 1 if a > b)

COa Cosine

aCPb Cartesian product of two iterables

CPa Cartesian product of a List of iterables

CSa Cosecant

CTa Cotangent

Da Decrement (modifying argument in-place)

DBa Double: a times 2

aDCb Delete all occurrences of characters in Scalar b from Scalar a

DGa Convert radians to degrees

aDKb Sort iterable b in descending order using Block a as key function

DQa Dequeue item from back of iterable (modifying argument in-place)

DNa Sort iterable in descending order using numeric comparison

DSa Sort iterable in descending order using string comparison

aEb Exponentiation

Ea Exponentiation with base 2

aEEb E notation: a times 10 to the power of b

EEa Unary E notation: 10 to the power of a

ENa Enumerate an iterable (gives List of [index item] Lists)

EXa Exponential (base e)

EYa Identity matrix (abbreviation from Matlab’s eye() function)

FAa Flatten all levels of List/Range a, resulting in a flat List

aFBb Convert number from given base to decimal integer

FBa Convert number from binary to decimal integer

aFDb Convert iterable containing digits in given base to decimal integer

FDa Convert iterable containing digits in binary to decimal integer

aFEb Filter-enumerate: keep items from iterable b which return truthy results when function a is called with the index and the item as arguments

aFIb Filter: keep items from iterable b which return truthy results when passed to function a

FIa Unary filter: keep items from iterable a which are truthy

aFJb Filter iterable b by Block a and join results into Scalar

FJa Keep items from iterable a which are truthy and join results into Scalar

FLa Flatten one level of List/Range a (equivalent to $AL)

aFNb Filter negated: keep items from iterable b which return falsey results when passed to function a

FNa Unary filter negated: keep items from iterable a which are falsey

aFUb Filter-unpack: keep items from iterable b which return truthy results when function a is called with the item unpacked into zero or more function arguments

aFXb Filter indexes: List of indexes into iterable b which return truthy results when function a is called with the index and the item as arguments

FXa Unary filter indexes: List of indexes of truthy items in iterable a

aGTb String greater than

aGEb String greater than or equal

aHb Get prefix of a that is b elements long (mnemonic: Head); with negative b, get prefix of length len(a)+b

Ha Get prefix of a containing all but the last element of a

HUa Halve up: a divided by 2 and rounded up

HVa Halve: a divided by 2 and rounded down

ICa Convert to initial caps (capitalize the first character: aB Cd -> Ab cd)

aJb Join iterable on separator

Ja Join iterable on empty string

aJWb Join iterable on separator and wrap result in separator as well

Ka Apply Kleene star (repeat 0 or more times) to a Pattern

LBa Binary logarithm (log base 2)

LCa Convert to lowercase (aB Cd -> ab cd)

LDa Decimal logarithm (log base 10)

aLEb String less than or equal

LNa Natural logarithm (log base e)

aLTb String less than

aMb Map Block a to iterable b, returning List

Ma Maximum of iterable, using numeric comparison

aMCb Map Block a to each x,y in bxb grid of coordinate pairs; if b is a two-element Range or List of Scalars, map to b@0xb@1 grid

aMEb Map Block a to index/value pairs for items in iterable b, returning List

aMFb Map Block a to iterable b and flatten results by one level

aMJb Map Block a to iterable b and join results into Scalar

aMMb Map Block a to each subitem of iterable b, returning List of Lists

MNa Alias for unary N

aMPb Map Block a to consecutive pairs of items from iterable b, returning List

aMRbc Map Block a to each regex match of Pattern b in Scalar c (operands are rearrangeable)

aMSb Map Block a to iterable b and sum results

aMUb Map Block a to iterable b, unpacking each item as function arguments (like Python’s itertools.starmap); returns List

MXa Alias for unary M

aMZbc Map Block a to two iterables, passing zipped pairs of elements as arguments; returns List

aNb In (returns count of occurrences or 0 if none)

Na Minimum of iterable, using numeric comparison

aNEb String not equal

aNIb Not in (returns truth value 0 or 1)

Oa Output value and pass through unchanged (same as P but without trailing newline)

aOGb Grid of ones (a rows by b columns)

OGa Grid of ones (a rows by a columns)

Pa Print value with newline and pass through unchanged (output format for Lists depends on command-line flags; nil gives no output and also suppresses trailing newline)

aPBb Push item to back of iterable (modifying argument in-place)

aPEb List a with element b prepended

PMa List of all permutations of iterable

aPKb Pick out item from index b of iterable a (modifying a in-place)

POa Pop item from front of iterable (modifying argument in-place)

aPUb Push item to front of iterable (modifying argument in-place)

PZa Palindromize iterable, appending its reverse but without repeating the central item

aQb String equal

QPa Quad-palindromize iterable, palindromizing it and also each of its items

QRa Quad-reflect iterable, reflecting it and also each of its items

aRbc Replace each occurrence in Scalar a of substring or Pattern b with replacement c

Ra Reverse

aRAbc Replace item in iterable a at index b with replacement c

RCa Uniformly random choice of single item from iterable

RDa Convert degrees to radians

REa Call the current function recursively with argument a

RFa Reflect iterable, appending its reverse

aRLb Repeat List a b times

aRMb Remove occurrences of b from a (removes items from List or Range; removes substrings or regex matches from Scalar)

aRNb Round a to nearest multiple of b

RNa Round a to nearest integer

RPa Like Python’s repr: convert to an unambiguous string representation (numeric Scalar becomes 123.45; non-numeric Scalar becomes "abc"; Pattern becomes `abc`; Range becomes (1,4); List becomes [1;2;"three"]; Nil becomes ())

aRRb Random integer in range from a to b

RRa Random integer in range from 0 to a

aRTb ath root of b

RTa Square root of a

RVa Alias for unary R

aRZb Round a to next multiple of b closer to zero

RZa Round a to next integer closer to zero (truncate)

aSb Get suffix of a that is b elements long; with negative b, get suffix of length len(a)+b

Sa Get suffix of a containing all but the first element of a

SCa Swap case: Hello, World! becomes hELLO, wORLD!

SEa Secant

SGa Sign of number (-1, 0, or 1)

SHa Shuffle: random permutation of iterable

SIa Sine

aSKb Sort iterable b using Block a as key function

SNa Sort iterable in ascending order using numeric comparison

SQa a squared

SSa Sort iterable in ascending order using string comparison

STa Convert to string (for Lists, the format of the result depends on command-line flags)

TAa Tangent

aTBb Convert decimal integer a to base b

TBa Convert decimal integer a to binary

TCa Convert to title case (aB Cd -> Ab Cd)

aTDb Convert decimal integer a to list of digits in base b

TDa Convert decimal integer a to list of digits in binary

aTMb Trim Scalar a by b characters from front and end (Scalar b trims same amount on both sides; Range b trims different amounts)

TMa Trim first and last characters from Scalar a

aTRbc Transliterate a from characters in b to those in c (with b or c Scalar, transliterates one letter to another; with b or c Range or List of numbers, translates character codes)

Ua Increment (modifying argument in-place)

UCa Convert to uppercase (aB Cd -> AB CD)

UQa Keep only unique values from iterable

aUWb Unweave iterable a into a List of b strands

UWa Unweave iterable a into a List of two strands

aVb Call Block as function with arglist (equivalent to a(*b) in Python)

Va Evaluate Block in current context, returning value of final expression or nil if there isn’t one

aWRb Wrap Scalar or Pattern with a delimiter

aWVb Weave two iterables together, alternating their items

WVa Weave all subitems in an iterable together

aXb Repeat Scalar a b times

Xa Covert Scalar or List/Range to equivalent regex Pattern (escaping special characters as necessary)

Ya Yank value into the variable y (equivalent to (y:a))

YOa Output value, then yank it (equivalent to (y:Oa))

YPa Print value, then yank it (equivalent to (y:Pa))

aZb Zip two Lists together (clipping to the shorter length)

Za Zip a List of Lists together (clipping to the shortest length)

aZDb Zip a List of Lists together, filling missing values with default value b

ZDa Zip a List of Lists together, filling missing values with default value ""

aZGb Grid of zeros (a rows by b columns)

ZGa Grid of zeros (a rows by a columns)

aZJb Zip two iterables together, filling missing values with " ", and join each pair of values into a string

ZJa Zip a List of iterables together, filling missing values with " ", and join each group of values into a string

\!a Logical not (can be used in lambda expressions)

a\&b Logical and (non-short-circuiting, can be used in lambda expressions)

a\,b Inclusive range

\,a Inclusive range from 1

a\?bc If-then-else operator (non-short-circuiting, can be used in lambda expressions)

a\|b Logical or (non-short-circuiting, can be used in lambda expressions)

a^b Split Scalar a on separator b

^a Split Scalar a into List of characters

a^@b Split iterable a at index or List of indices b

a|b Logical or (short-circuiting)

a|<b Round a down to largest multiple of b that is <= a

|<a Round a down to largest integer that is <= a (floor)

a|>b Strip characters in b from left of a

|>a Strip whitespace from left of a

a||b Strip characters in b from a

||a Strip whitespace from a

a~b Find first regex match of b in Scalar a (reversible)

a~=b Test if Pattern b fully matches Scalar a (reversible)


Copyright © 2015-2024 David Loscutoff. Distributed on Github.