Juliaで文字列を結合する方法
コード
文字列の連結 *
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
