Skip to content

Instantly share code, notes, and snippets.

@xwu
Last active October 12, 2017 01:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save xwu/6a846303e8fbd1d2a6667a084e60f429 to your computer and use it in GitHub Desktop.
Save xwu/6a846303e8fbd1d2a6667a084e60f429 to your computer and use it in GitHub Desktop.
Swift Default Operators
Glyph Code Description
! U+0021 EXCLAMATION MARK
% U+0025 PERCENT SIGN
& U+0026 AMPERSAND
* U+002A ASTERISK
+ U+002B PLUS SIGN
- U+002D HYPHEN-MINUS
/ U+002F SOLIDUS
< U+003C LESS-THAN SIGN
= U+003D EQUALS SIGN
> U+003E GREATER-THAN SIGN
? U+003F QUESTION MARK
^ U+005E CIRCUMFLEX ACCENT
| U+007C VERTICAL LINE
~ U+007E TILDE
¡ U+00A1 INVERTED EXCLAMATION MARK
§ U+00A7 SECTION SIGN
¬ U+00AC NOT SIGN
± U+00B1 PLUS-MINUS SIGN
U+00B6 PILCROW SIGN
¿ U+00BF INVERTED QUESTION MARK
× U+00D7 MULTIPLICATION SIGN
÷ U+00F7 DIVISION SIGN
U+2032 PRIME
U+2190 LEFTWARDS ARROW
U+2191 UPWARDS ARROW
U+2192 RIGHTWARDS ARROW
U+2193 DOWNWARDS ARROW
U+2194 LEFT RIGHT ARROW
U+21A6 RIGHTWARDS ARROW FROM BAR
U+21BC LEFTWARDS HARPOON WITH BARB UPWARDS
U+21BD LEFTWARDS HARPOON WITH BARB DOWNWARDS
U+21C0 RIGHTWARDS HARPOON WITH BARB UPWARDS
U+21C1 RIGHTWARDS HARPOON WITH BARB DOWNWARDS
U+21D0 LEFTWARDS DOUBLE ARROW
U+21D1 UPWARDS DOUBLE ARROW
U+21D2 RIGHTWARDS DOUBLE ARROW
U+21D3 DOWNWARDS DOUBLE ARROW
U+21D4 LEFT RIGHT DOUBLE ARROW
U+2200 FOR ALL
U+2203 THERE EXISTS
U+2208 ELEMENT OF
U+220B CONTAINS AS MEMBER
U+220F N-ARY PRODUCT
U+2210 N-ARY COPRODUCT
U+2211 N-ARY SUMMATION
U+2213 MINUS-OR-PLUS SIGN
U+2218 RING OPERATOR
U+2219 BULLET OPERATOR
U+221D PROPORTIONAL TO
U+2220 ANGLE
U+2225 PARALLEL TO
U+2227 LOGICAL AND
U+2228 LOGICAL OR
U+2229 INTERSECTION
U+222A UNION
U+222B INTEGRAL
U+222E CONTOUR INTEGRAL
U+2232 CLOCKWISE CONTOUR INTEGRAL
U+2233 ANTICLOCKWISE CONTOUR INTEGRAL
U+2234 THEREFORE
U+2235 BECAUSE
U+2240 WREATH PRODUCT
U+2243 ASYMPTOTICALLY EQUAL TO
U+2245 APPROXIMATELY EQUAL TO
U+2248 ALMOST EQUAL TO
U+224D EQUIVALENT TO
U+2250 APPROACHES THE LIMIT
U+2260 NOT EQUAL TO
U+2261 IDENTICAL TO
U+2264 LESS-THAN OR EQUAL TO
U+2265 GREATER-THAN OR EQUAL TO
U+226A MUCH LESS-THAN
U+226B MUCH GREATER-THAN
U+227A PRECEDES
U+227B SUCCEEDS
U+227C PRECEDES OR EQUAL TO
U+227D SUCCEEDS OR EQUAL TO
U+2282 SUBSET OF
U+2283 SUPERSET OF
U+2286 SUBSET OF OR EQUAL TO
U+2287 SUPERSET OF OR EQUAL TO
U+228E MULTISET UNION
U+2291 SQUARE IMAGE OF OR EQUAL TO
U+2292 SQUARE ORIGINAL OF OR EQUAL TO
U+2293 SQUARE CAP
U+2294 SQUARE CUP
U+2295 CIRCLED PLUS
U+2296 CIRCLED MINUS
U+2297 CIRCLED TIMES
U+2298 CIRCLED DIVISION SLASH
U+2299 CIRCLED DOT OPERATOR
U+22A2 RIGHT TACK
U+22A3 LEFT TACK
U+22A4 DOWN TACK
U+22A5 UP TACK
U+22A8 TRUE
U+22C4 DIAMOND OPERATOR
U+22C5 DOT OPERATOR
U+22C6 STAR OPERATOR
U+22C8 BOWTIE
U+22EE VERTICAL ELLIPSIS
U+22EF MIDLINE HORIZONTAL ELLIPSIS
U+22F0 UP RIGHT DIAGONAL ELLIPSIS
U+22F1 DOWN RIGHT DIAGONAL ELLIPSIS

Design Principles

  • Preserve all existing ASCII operator characters.
  • Include ¡ and ¿ to complement non-C Swift operators ! and ? (on-list request).
  • Include § due to extant use in Operadics package and to complement that usage.
  • Include NFKC non-operand characters given in UTN28, excluding enclosures, spaces, big/long variants, arrows that display as emoji on common platforms, and characters confusable with ASCII operator characters.
  • Where two semantically equivalent characters would otherwise be listed, favor the "operator" equivalent as recommended by Unicode (e.g., BULLET OPERATOR over BULLET)--unless the "non-operator" equivalent is an ASCII character, as a pragmatic concession to backward compatibility (e.g., ASTERISK over ASTERISK OPERATOR).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment