-
Notifications
You must be signed in to change notification settings - Fork 0
/
operators.txt
137 lines (124 loc) · 2.74 KB
/
operators.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
To do :
-------
- reg ex (~ ?)
- dot product (** ?)
- like type: maybe redundant with traits
Whitespace
----------
// end-of line comment
/* multi-line comment
; definition separator (or parameter separator)
. end of statement (or member access)
Identifiers
-----------
_ private identifier (inside identifier)
/ multiple identifiers (or division)
-- namespace
. member access (or end of statement)
= definition (or equality)
Comparisons
-----------
= equality (definition)
!= not equal
< less than
<= less than or equal
> greater than
>= greater than or equal
Arithmetic
----------
% modulo
/ division (multiple identifiers)
^ exponentiation
+ addition, unary positive
* multiplication
- subtraction, unary negative
?? default value if void
? ternary expression (OR voidable type)
( ) brackets for priority (OR tuple)
\ pipe function call
Logic
-----
! not
& and
or inclusive or
xor exclusive or
Scalar types
------------
. floating part (inside number)
" string with formatting
'
{ } formatting of a value (inside string)
() void (without spacing)
Composite
---------
, element separator (inside composite)
( ) tuples (or brackets for priority)
[ ] list, indexing
:: linked list
<> empty linked list
{ } set, dictionary (after appropriate keyword)
-> dictionary key, function type (OR if pattern match)
{| |} record
: record member type (after member name)
<| modify record
++ inheritance, concatenation
# tag
? voidable type (OR ternary expression)
| union type (OR case)
... splat operator of enumerable (OR match any number of elements)
- generic parameter
Ranges
------
..= inclusive range
..>= inclusive range descending
..< exclusive range
..> exclusive range descending
+.. range by length
-.. range by length descending
Functions
---------
$ lambda param
=> function return
{ } inline code block
; parameter separator (definition separator)
: explicit param lambda, function result type
>> composition
Pattern matching
----------------
| case (OR union type)
@ match capture (inside match branch)
... match any number of elements (OR splat operator of enumerable)
_ match any
, pattern separator (inside match branch)
-> if pattern match (OR dictionary key, function type)
Set operations
--------------
{-} set difference
{+} set union
{&} set intersection
{*} cartesian product
{^} cartesian power
Set comparisons
---------------
{=} set equality
{!=} set inequality
{<} {<=} is subset of
{>} {>=} is superset of
Unassigned symbols
------------------
~
><
`
**
<<
|>
[<
<]
+>
*>
!>
?>
%>
\>
:>
>/