gpt4 book ai didi

julia - 可用作宏中运算符的 ASCII 字符序列

转载 作者:行者123 更新时间:2023-12-04 12:26:30 24 4
gpt4 key购买 nike

RecipesBase.jl @recipe宏使用了几个由 ASCII 字符构成的特殊运算符,即 -->:= .这些字符序列似乎有一些特殊的属性,可以将它们解析为 Expr .比较 -->-- :

julia> 1 --> 2
ERROR: syntax: invalid syntax 1 --> 2

julia> 1 -- 2
ERROR: syntax: invalid operator "--"

julia> :(1 --> 2)
:($(Expr(:-->, 1, 2)))

julia> :(1 -- 2)
ERROR: syntax: invalid operator "--"

有趣的是, 1 --> 2:--> 的表达式头解析, 而其他二元运算符,包括 Unicode 二元运算符,例如 (类型为 \uparrow + TAB ),被解析为表达式头 :call :
julia> dump(:(1 --> 2))
Expr
head: Symbol -->
args: Array{Any}((2,))
1: Int64 1
2: Int64 2

julia> dump(:(1 ↑ 2))
Expr
head: Symbol call
args: Array{Any}((3,))
1: Symbol ↑
2: Int64 1
3: Int64 2

所以,我有几个相关的问题:
  • 怎么了 -->:= ? (编辑:换句话说,为什么要特别解析这些字符序列?)
  • 是否有其他 ASCII 字符序列的行为类似于 -->:=因此可以在宏中用作运算符吗?
  • 是否有文档列出了 ASCII 字符的各种“特殊”序列?
  • 最佳答案

    -->:=由 Julia 解析器专门解析。

    看看这个文件:
    https://github.com/JuliaLang/julia/blob/f54cdf45a9e04f1450ba22142ddac8234389fe05/src/julia-parser.scm

    它列出了所有经过特殊解析的字符序列,我很确定您也可以从中获得关联性。

    关于julia - 可用作宏中运算符的 ASCII 字符序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58365731/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com