ฉันรู้ว่าผู้ประกอบการใน Julia เป็นเพียงฟังก์ชั่นมาตรฐานและฉันสามารถใช้พวกเขาโดยใช้ไวยากรณ์การโทรคำนำหน้าธรรมดา:
julia> +(1, 2)
3
อย่างไรก็ตามพวกเขายังพิเศษในแง่ที่ว่าพวกเขาสามารถใช้ (และมักจะ) เป็นตัวดำเนินการมัด:
julia> 1+2
3
ฉันสามารถกำหนดตัวดำเนินการมัดของตัวเองได้หรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร
ตัวอย่างเช่น:
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
สับ (มันต้องอาศัยการคูณโดยปริยายโดยตีข่าว)julia> using InfixFunctions; @infix α(x, y) = x + y; 1 |α| 2
ที่ทำอย่างนี้: (InfixFunctions.jl
ได้รับการพัฒนาเป็นแบบฝึกหัดแมโครสำหรับตัวเองมันไม่ทำงานกับ