ジュリアで文字列を結合する方法
コード
文字列の連結 *
julia> "oh" * "my" * "girl"
"ohmygirl"
Pythonの+
に相当する。
複数の文字列を連結する string()
julia> string("oh","my", "girl")
"ohmygirl"
Rのpaste0()
に相当する。
文字列のリストのアイテムとして連結する join()
julia> OMG = ["oh","my", "girl"]
3-element Vector{String}:
"oh"
"my"
"girl"
julia> join(OMG)
"ohmygirl"
Pythonのjoin()
に相当する。
同じ文字列を繰り返す ^
julia> "=-" ^ 10
"=-=-=-=-=-=-=-=-=-=-"
Pythonの*
に相当する。繰り返しをべき乗で表現することは、偶然ではなく、Pythonで文字列を連結する二項演算が+
(和)で、これを繰り返すことが*
(積)であるように、Juliaでは連結する演算が*
(積)で、これを繰り返すことが^
(べき乗)になるのだ。
なぜ?
なぜ、他の言語と同じように直感的に理解しやすい+
ではなく*
を使うのか?それは代数的、数学的観点から、文字列の結合は加法よりも乗法に近く、自然だからだ1。代数学の自由群というのを理解できれば最高だけど、そういう背景知識がなくても、数学でx
とy
の積をx * y = xy
のように表すのは納得できるだろう。
$$
x \ast y = xy
$$
今、"xy"
という文字列に"litol"
という文字列を付け足して、"xylitol"
キシリトールを作ると考えてみよう。
$$
xy \ast litol = xylitol
$$
納得できるだろう。今更"xy" + "litol"
を考えると、何か変に感じるかもしれない。Juliaを作った人たちは、そういう数学的直感に真剣そのものだ。
環境
- OS: Windows
- julia: v1.6.2