julia
julia copied to clipboard
Improve documentation of operators
I've always found the documentation of operators a little disjointed and incomplete; this PR aims to improve the situation.
- Add missing items to the precedence table
- Adjoint operator goes after
::and before exponentiation - Juxtaposition of numeric literals goes after unary operators and before bitshifts
- Arrows go between
||and? - New footnote explains exceptions to exponentiation precedence
- New footnote explains non-associativity of comparisons, but notes chaining
- Adjoint operator goes after
- Add more complete lists of operators
- Include all operators defined in Base
- Include operators that are available but not defined in Base, set off by parentheses
- Operator suffixes
- Note that new operators can be defined with suffixes
- Explain what those prefixes are
- Show an example
- Provide some links between disjoint pages
- Link from Manual > Variables to operator section
- Link from Manual > Integers and Floating-Point Numbers to operator section
- Link from Manual > Functions to operator section
- Link back to functions page when noting that operators are functions.
Given that the documentation previously said that a space was required in expressions like the +ᵃx discussed above, I guess we would argue that just parsing it as +ᵃ x is actually a bug, which can be fixed by modifying the parser. As such, I don't want to weaken that language, so I've reverted my change to keep the stronger language.