Julia 中的函数组合运算符是否有 ASCII 别名,
∘
?
一般来说,有没有办法找到运算符的 ASCII/Unicode 变体?
julia> ∘
∘ (generic function with 2 methods)
^尝试过这个,
≈
例如有一个替代方案:
julia> ≈
isapprox (generic function with 8 methods)
对于
∘
,没有替代 AFAICT。您可以通过运行来检查:
julia> methods(∘)
# 3 methods for generic function "∘":
[1] ∘(f) in Base at operators.jl:874
[2] ∘(f, g) in Base at operators.jl:875
[3] ∘(f, g, h...) in Base at operators.jl:876
并打开相应的函数定义(如果您有正确配置的 Julia 安装,只需按例如 1,然后按 CTRL-Q)即可获取:
function ∘ end
∘(f) = f
∘(f, g) = (x...)->f(g(x...))
∘(f, g, h...) = ∘(f ∘ g, h...)
但是,只需写:
就很容易了const compose = ∘
现在您可以使用
compose(f, g)
代替 f ∘ g
。
对于
≈
和 isapprox
,在代码中定义了 isapprox
函数,然后:
const ≈ = isapprox
在floatfuncs.jl中添加定义。
您可以在 Julia 1.6 及更高版本上使用
ComposedFunction(f, g)
:
julia> ComposedFunction(-, exp)
(-) ∘ exp
当然,这有点麻烦,因为你需要嵌套来组合更多的函数:
julia> ComposedFunction(-, ComposedFunction(exp, adjoint))
(-) ∘ (exp ∘ adjoint)