哪些符号可以作为中缀运算符

我知道julia中的运算符和函数本质上没有区别,但是比如

julia> ×(x, y) = x * y
× (generic function with 1 method)

julia> 3×4
12

julia> ∂(x,y) = x + y
∂ (generic function with 1 method)

julia> 2 ∂ 3
ERROR: syntax: extra token "∂" after end of expression
Stacktrace:
 [1] top-level scope at none:1

\times自动的就可以作为中缀运算符,但是\partial就不可以。在哪里可以查到所有可以作为中缀运算符的符号呢?

https://docs.julialang.org/en/v1/base/math/#Customizable-binary-operators

目前能否作为中缀运算符是在 parser 中手动指定的,并同时指定优先级。

确有需要可以提 issue,让开发团队添加新符号。

注:

  • 两个 | 之间的视为单一的符号,\| 转义表示原始的竖线。
    例如:|\|\|| ==> |||\|| ==> |
  • add-dots 和手动加前缀点 . 代表可以用作逐元素(elementwise)操作
    例如:|..| ==> .|.<\|| ==> <|

自定义中缀运算

  • Custom infix operators can now be defined by appending Unicode combining marks, primes, and sub/superscripts to other operators. For example, +̂ₐ″ is parsed as an infix operator with the same precedence as + (#22089).

—— julia/HISTORY.md · JuliaLang/julia

3 个赞