줄리아에서 문자열 합치는 법
코드
문자열 합치기 *
julia> "oh" * "my" * "girl"
"ohmygirl"
파이썬의 +
에 해당한다.
여러 문자열 합치기 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"
파이썬의 join()
에 해당한다.
같은 문자열 반복하기 ^
julia> "=-" ^ 10
"=-=-=-=-=-=-=-=-=-=-"
파이썬의 *
에 해당한다. 거듭제곱으로 반복을 표현한 것은 전혀 우연이 아닌데, 파이썬에서 문자열을 이어붙이는 이항연산이 +
(합)이고 이를 반복하는 것이 *
(곱)인 것처럼 줄리아에서는 이어붙이는 연산이 *
(곱)이고 이를 반복하는 것은 ^
(승)이 되는 것이다.
왜?
왜 다른 언어들처럼 직관적으로 이해하기 쉬운 +
가 아닌 *
를 쓰는가? 그건 대수적, 수학적 관점에서 문자열의 병합이 합보다 곱에 가깝고 자연스럽기 때문이다1. 당신이 대수학에서의 프리 그룹이라는 걸 이해할 수 있으면 가장 좋겠지만, 그런 배경지식이 없더라도 수학에서 x
와 y
의 곱을 x * y = xy
와 같이 나타내는 것은 납득할 수 있을 것이다. 수식으로 나타내면 다음과 같다.
$$
x \ast y = xy
$$
이제 "xy"
이라는 문자열에 "litol"
이라는 문자열을 붙여서 "xylitol"
자일리톨을 만든다고 생각해보자.
$$
xy \ast litol = xylitol
$$
말 된다. 이제와서 새삼 "xy" + "litol"
을 생각해보면 뭔가 이상하게 느껴질 수 있을 것이다. 줄리아를 만든 사람들은 이런 수학적 직관에 수상할정도로 진심이다.
환경
- OS: Windows
- julia: v1.6.2