为什么我不能在作业中使用 Unicode 字符√和∀?
Why can I not use the Unicode characters √ and ∀ in assignments?
Julia 对 Unicode 字符有一个有趣的支持。该语法允许我在 iJulia 笔记本中 运行 以下内容。
μ = 10
σ = 20
∑ = sum
a = [1,2,3,4]
∑(a) # prints 10
但是,似乎并不总是可以将 Unicode 字符用于 function/variable 名称。
sqrt √ 例子
√ = sqrt
出现以下错误:
syntax: unexpected "="
对于所有∀例子
forall(x,f) = [f(i) for i in x]
∀ = forall
给出以下错误:
syntax: invalid character "∀"
为什么?
我是不是理解错了规则?我假设 Unicode 字符会像任何其他字母字符一样被解释,但我似乎在看似简单的语句中遇到了两个不同的错误。
我认为问题是这些函数已经被定义了。
查看 link 一些具有内置于 Julia 中的含义的字符:https://github.com/JuliaLang/julia/blob/d234b4ff56df9ce85198dcdd8d9ef1073b2436fc/base/operators.jl#L403-L432(注意,并非所有这些都是 unicode,可能在 base 的不同文件中还有其他字符 --但这至少涵盖了您的 sqrt
示例)
√
是已有函数的名称;尝试 运行 以下操作:
julia> methods(√)
# 12 methods for generic function "sqrt":
sqrt(a::Complex{Float16}) at float16.jl:141
sqrt{T<:FloatingPoint}(z::Complex{T<:FloatingPoint}) at complex.jl:237
sqrt(z::Complex{T<:Real}) at complex.jl:261
...
至于 ∀
,它在 Julia 源代码中不是有效字符(还?)。参见this discussion;结果是,开发人员仍在考虑是否让 ∀
成为一个有效字符,如果他们这样做了,它会有什么意义。
Julia 对 Unicode 字符有一个有趣的支持。该语法允许我在 iJulia 笔记本中 运行 以下内容。
μ = 10
σ = 20
∑ = sum
a = [1,2,3,4]
∑(a) # prints 10
但是,似乎并不总是可以将 Unicode 字符用于 function/variable 名称。
sqrt √ 例子
√ = sqrt
出现以下错误:
syntax: unexpected "="
对于所有∀例子
forall(x,f) = [f(i) for i in x]
∀ = forall
给出以下错误:
syntax: invalid character "∀"
为什么?
我是不是理解错了规则?我假设 Unicode 字符会像任何其他字母字符一样被解释,但我似乎在看似简单的语句中遇到了两个不同的错误。
我认为问题是这些函数已经被定义了。
查看 link 一些具有内置于 Julia 中的含义的字符:https://github.com/JuliaLang/julia/blob/d234b4ff56df9ce85198dcdd8d9ef1073b2436fc/base/operators.jl#L403-L432(注意,并非所有这些都是 unicode,可能在 base 的不同文件中还有其他字符 --但这至少涵盖了您的 sqrt
示例)
√
是已有函数的名称;尝试 运行 以下操作:
julia> methods(√)
# 12 methods for generic function "sqrt":
sqrt(a::Complex{Float16}) at float16.jl:141
sqrt{T<:FloatingPoint}(z::Complex{T<:FloatingPoint}) at complex.jl:237
sqrt(z::Complex{T<:Real}) at complex.jl:261
...
至于 ∀
,它在 Julia 源代码中不是有效字符(还?)。参见this discussion;结果是,开发人员仍在考虑是否让 ∀
成为一个有效字符,如果他们这样做了,它会有什么意义。