So che gli operatori in Julia sono solo funzioni standard e posso usarli usando la normale sintassi della chiamata con prefisso:
julia> +(1, 2)
3
Tuttavia, sono anche speciali, nel senso che possono essere (e di solito) utilizzati come operatori infix:
julia> 1+2
3
Posso definire il mio operatore infix? Se é cosi, come?
Per esempio:
julia> α(x, y) = x+y
α (generic function with 1 method)
julia> α(1, 2)
3 # as expected
julia> 1α2
# expected result: 3
ERROR: UndefVarError: α2 not defined
Stacktrace:
[1] top-level scope at REPL[5]:1
julia> 1 α 2
# expected result: 3
ERROR: syntax: extra token "α" after end of expression
Stacktrace:
[1] top-level scope at REPL[5]:0
@infix
mod (si basa sulla moltiplicazione implicita per giustapposizione) che ha fatto questo:julia> using InfixFunctions; @infix α(x, y) = x + y; 1 |α| 2
. (ÈInfixFunctions.jl
stato sviluppato come un esercizio macro per me stesso, non funziona con julia 1.x come è.)