Julia 函数组合 (∘) 运算符的 ASCII 替代方案?

问题描述 投票:0回答:2

Julia 中的函数组合运算符是否有 ASCII 别名,

一般来说,有没有办法找到运算符的 ASCII/Unicode 变体?

julia> ∘
∘ (generic function with 2 methods)

^尝试过这个,

例如有一个替代方案:

julia> ≈
isapprox (generic function with 8 methods)
julia function-composition
2个回答
4
投票

对于

,没有替代 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中添加定义。


0
投票

您可以在 Julia 1.6 及更高版本上使用

ComposedFunction(f, g)

julia> ComposedFunction(-, exp)
(-) ∘ exp

当然,这有点麻烦,因为你需要嵌套来组合更多的函数:

julia> ComposedFunction(-, ComposedFunction(exp, adjoint))
(-) ∘ (exp ∘ adjoint)
© www.soinside.com 2019 - 2024. All rights reserved.