$
はジュリアは、式だけでなく、文字列を補間するために、この表記法を使用し、補間指令である:
julia> a=1;
julia> "test $a" # => "test 1"
julia> :(b+$a) # => :(b + 1)
あなたはジュリアREPLでコマンドを入力すると、コードがない場合、それはコマンドを評価しようとすると、最終的に;
charを返すと結果が表示されるので、コマンドの実行時にREPLに表示される内容を印刷する機能に関連します。
julia> dump(:(a+b))
Expr
head: Symbol call
args: Array(Any,(3,))
1: Symbol +
2: Symbol a
3: Symbol b
typ: Any
julia> dump(:(a in b))
Expr
head: Symbol in
args: Array(Any,(2,))
1: Symbol a
2: Symbol b
typ: Any
それは両方の式がhead
、args
としてExpr
の共通のデータ構造を使用することを、上記の試験から明らかだ:
はそうあなたが変数一つの可能性の本当の内容を確認したい場合はdump
機能を使用することですtyp
なし$
の内部にがあります。
は今評価し、印刷結果しよう:
julia> :(a in b)
:($(Expr(:in, :a, :b)))
julia> :(a+b)
:(a + b)
我々はすでに両方が同じ構造を作成するコマンドことを知っているが、REPLが良い:(a in b)
の結果を表示することができない別のExpr
の結果Expr
、それはなぜあります内部は$
です。 :(a+b)
を扱うときには、REPLは、よりインテリジェントに行うと、これがあることを理解:
Expr
head: Symbol call
args: Array(Any,(3,))
1: Symbol +
2: Symbol a
3: Symbol b
typ: Any
:(a+b)
に等しいです。 Exprにするためshow
機能は、一般的な印刷形式にin
中置演算子とフォールバックを理解していないオブジェクト(show.jl
でshow_unquoted
)を入力したため:($(Expr(...)))
のよう
ジュリア言語**メタプログラミングのドキュメントを参照してください。http://docs.julialang.org/en/latest/manual/metaprogramming – SalchiPapa