Julia 1.0์์ API ์ผ๊ด์ฑ์ ํ์ธํ ๋ ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ ๋ํ ๋ฉ๋ชจ๋ฅผ ๋จ๊ธฐ๋ ๊ณณ์ผ๋ก ์์ํฉ๋๋ค.
[x] ํ์ฝ ์ฐ์ ์์. do-block์ ๋ํ ํจ์ ์ธ์, ์ธ์ํ๋ ํจ์์ ๋ํ IO ์ธ์, ์ธํ๋ ์ด์ค ํจ์์ ๋ํ ์ถ๋ ฅ ๋ฑ์ ๊ด์ ์์ ์ฐ๋ฆฌ์ ์ฒซ ๋ฒ์งธ ๊ท์น์ ๋์ดํ๊ณ ์ฐ์ ์์๋ฅผ ์ง์ ํฉ๋๋ค (https://github.com/JuliaLang/julia/issues/ 19150).
[] ์์น ๋ ํค์๋ ์ธ์. ์ค๋์ ์๋ ํค์๋ ์ธ์๊ฐ ์์์ต๋๋ค. ์ฑ๋ฅ ๊ณ ๋ ค๋ฅผ ์ํด ์ฌ์ ํ ๋๋๋ก ํผํฉ๋๋ค. ์ด๋ฌํ ์ ํ์ ๊ณผ๊ฑฐ ์ํ๋ฌผ์ด ์๋๋ผ ์ต๊ณ ์ API๋ฅผ ๋ง๋๋ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก์ด ์ ํ์ํด์ผํฉ๋๋ค (ํค์๋ ์ฑ๋ฅ ๋ฌธ์ ๋ ํด๊ฒฐํ์ฌ ๋ ์ด์ ๊ณ ๋ คํ์ง ์๋๋กํด์ผํฉ๋๋ค).
[] ๋ฉํ ํ๋ก๊ทธ๋๋ฐ ๋๊ตฌ. code_xxx
์ ๊ฐ์ ๊ธฐ๋ณธ ํจ์์ ์์ ์ด๋ฃจ๋ @code_xxx
์ ๊ฐ์ ๋ง์ ๋๊ตฌ๊ฐ ์์ต๋๋ค. ์ด๋ค์ ์ผ๊ด๋๊ฒ ์๋ํด์ผํฉ๋๋ค. ์ ์ฌํ ์๋ช
์ ๊ฐ์ง ํจ์๊ฐ์๋ ๊ฒฝ์ฐ ์ ์ฌํ ๋งคํฌ๋ก ๋ฒ์ ์ด ์๋์ง ํ์ธํ์ญ์์ค. ์ด์์ ์ผ๋ก๋ LLVM ์ฝ๋ ๋ฐ ์ด์
๋ธ๋ฆฌ ์ฝ๋์ ๊ฐ์ ๊ฒฝ์ฐ ์ด๋ ค์ธ ์ ์์ง๋ง ์ผ๋ถ ๋ฐํ ๊ฐ ๋ฐ ๋ค๋ฅธ ์ถ๋ ฅ ๊ฒฐ๊ณผ๊ฐ ์๋ ๋ชจ๋ ๊ฐ์ ๋ฐํํด์ผํฉ๋๋ค.
[] IO <=> ํ์ผ ์ด๋ฆ์ด ๋์ผํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ์ผ ์ด๋ฆ์ IO ๊ฐ์ฒด ๋์ ๋ฌธ์์ด๋ก ์ ๋ฌํ ์ ์์ผ๋ฉฐ ํ์ค ๋์์ ์ ์ ํ ๋ชจ๋์์ ํ์ผ์ ์ด๊ณ ๊ฒฐ๊ณผ IO ๊ฐ์ฒด๋ฅผ ๋์ผํ ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ํจ์์ ์ ๋ฌํ ๋ค์ IO ๊ฐ์ฒด๊ฐ ๋์ค์ ๋ซํ๋๋ค. ๋ชจ๋ ์ ์ ํ IO ์์ฉ ๊ธฐ๋ฅ์ด์ด ํจํด์ ๋ฐ๋ฅด๋ ์ง ํ์ธํฉ๋๋ค.
[] Reducers API. ๊ฐ์๊ธฐ๊ฐ ์ผ๊ด๋ ๋์์ ์ํํ๋์ง ํ์ธํ์ญ์์ค. ๋ชจ๋ ์ถ์ ์ ์ ๋งต ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค. ํฉ๋ ์ฐจ์ ์ธ์ ๋ฑ
[] ์ฐจ์ ์ธ์. "์ด [์ด] ์ฐจ์์ ๊ฑธ์ณ ๊ณ์ฐ"์ ๋ ฅ ์ธ์, ํ์ฉ๋๋ ์ ํ ๋ฑ์ ๋ํ ์ผ๊ด๋ ์ฒ๋ฆฌ๋ ์ด๋ฌํ ์์ ์ ํค์๋ ์ธ์๋ก ์ํํ๋ ๊ฒ์ด ๋ฐ๋์งํ ์ง ์ฌ๋ถ๋ฅผ ๊ณ ๋ คํฉ๋๋ค.
[] ๋์ฐ๋ณ์ด / ๋น๋ณ์ด ์. ๋น๋ณ์ด ํจ์๊ฐ ์๋ฏธ์๋ ๋ณ์ด ํจ์์ ์์ ์ด๋ฃจ๋ ์ง ํ์ธํ๊ณ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
[] ํํ ๋ vararg. ํจ์๊ฐ ๋ง์ง๋ง ์ธ์๋ก ํํ์ ์ฌ์ฉํ๋์ง ์๋๋ฉด vararg๋ฅผ ์ฌ์ฉํ๋์ง๊ฐ์ ์ผ๋ฐ์ ์ธ ์ผ๊ด์ฑ์ด ์๋์ง ํ์ธํฉ๋๋ค.
[] ๊ณต์ฉ์ฒด ๋ nullables ๋ ์ค๋ฅ. ํจ์๊ฐ ์ค๋ฅ๋ฅผ ๋ฐ์์์ผ์ผํ๋์๊ธฐ์ Nullables ๋๋ Union์ ๋ฐํํด์ผํ๋์๊ธฐ (์ : ๊ตฌ๋ฌธ ๋ถ์ / tryparse, ์ผ์น ๋ฑ)์ ๋ํ ์ผ๊ด๋ ๊ท์น.
[] ๋ฐ์ ๊ธฐ๋ฅผ ๊ฐ๋ฅํ ํ ๊ด๋ฒ์ํ๊ฒ ์ง์ํ์ญ์์ค. ์ ๋๋ ์ดํฐ์ ํ๋ช ํ๊ฒ ์๋ ํ ์์๋ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์๋ํ๋์ง ํ์ธํ์ญ์์ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ด๊ฒ์ ๋ํด ๊ฝค ์ํ๊ณ ์์ง๋ง ๋ช ๊ฐ์ง๋ฅผ ๋์น ๊ฒ ๊ฐ์ต๋๋ค.
[] ์ถ๋ ฅ ์ ํ ์ ํ. "์ถ๋ ฅ ์ ํ"API๊ฐ ์์ ์ ํ ๋๋ ์ ์ฒด ์ปจํ ์ด๋ ์ ํ (ref # 11557 ๋ฐ # 16740) ์ธก๋ฉด์์ ์ด๋ฃจ์ด์ ธ์ผํ๋์ง์ ๋ํด ์ผ๊ด์ฑ์ ์ ์งํ์ญ์์ค.
[x] ์ด๋ฆ์ ์ ํํ์ญ์์ค. ๋ณ์นญ์ด์๋ ๋ช ๊ฐ์ง ํจ์ / ์ฐ์ฐ์๊ฐ ์์ต๋๋ค. ๋๋์ด ์ด๋ฆ ์ค ํ๋๊ฐ ์ฌ๋๋ค์ ์ฌ์ ํ ์์ ASCII ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ก ๋น ASCII์ ASCII ๋ฒ์ ์ด ์ ๊ณต๋๋ ๊ฒฝ์ฐ์ ์ข์ ์๊ฐํ์ง๋ง ๊ฐ์ ๊ฒฝ์ฐ๋์๋ค <:
์ ๋ณ์นญ ์ธ issubtype
์ฌ๊ธฐ์ ๋ ์ด๋ฆ ๋ชจ๋ ASCII์
๋๋ค. ์ฐ๋ฆฌ๋ ํ๋๋ฅผ ์ ํํ๊ณ ๋ค๋ฅธ ํ๋๋ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ฉ๋์ง is
์ฐฌ์ฑ ===
์ ์ ์ฌํ๊ฒ ์ฌ๊ธฐํด์ผํ๋ค.
[] DataStructures์์ ์ผ๊ด์ฑ. Base Julia์ ๋ฒ์๋ฅผ ๋ค์ ๋ฒ์ด ๋ฌ์ง๋ง DataStructures์ ๋ชจ๋ ์ปฌ๋ ์ ์ด Base์์ ์ ๊ณตํ๋ ๊ฒ๊ณผ ์ผ๊ด๋ API๋ฅผ ๊ฐ๋๋กํด์ผํฉ๋๋ค. ๋ค๋ฅธ ๋ฐฉํฅ์ ์ฐ๊ฒฐ์ ์ด๋ฌํ ์ ํ ์ค ์ผ๋ถ๊ฐ ์ํํ๊ณ ์ผ๊ด๋๊ฒ ํ์ฅ๋๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ Base์์ API๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
[] NaN ๋ DomainErrors. https://github.com/JuliaLang/julia/issues/5234๋ฅผ ์ฐธ์กฐ
[] ์ปฌ๋ ์ <=> ์์ฑ๊ธฐ. ๋๋ก๋ ์ปฌ๋ ์ ์ ์ํ๊ณ ๋๋ก๋ ์์ฑ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋ชจ๋ API๋ฅผ ์ดํด๋ณด๊ณ ๋ ๊ฐ์ง ๋ชจ๋์ ์ ํฉํ ์ต์ ์ด ์๋์ง ํ์ธํด์ผํฉ๋๋ค. ์๋ ์์ ์ ์์ฑ๊ธฐ ๋ฒ์ ์๋ ๋๋ฌธ์ ์ด๋ฆ์ ์ฌ์ฉํ๊ณ ์ด๋งํ๊ณ ์ ์ปฌ๋ ์ ์ ๋ฐํํ๋ ๋ฒ์ ์๋ ์๋ฌธ์ ์ด๋ฆ์ ์ฌ์ฉํ๋ ๊ท์น์ด์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ฌด๋ ๊ทธ๊ฒ์ ๊ด์ฌ์ ๊ธฐ์ธ์ด์ง ์์์ผ๋ฏ๋ก ์๋ก์ด ๋ํ๊ฐ ํ์ํ ์๋ ์์ต๋๋ค.
[] ์ฐ๊ด์ ๋ํ ๊ณ ์ฐจ ํจ์. ํ์ฌ ์ผ๋ถ ๊ณ ์ฐจ ํจ์๋ ์๋ช
(k,v)
โ ์๋ฅผ ๋ค์ด map
, filter
์ฌ์ฉํ์ฌ ์ฐ๊ด ์ปฌ๋ ์
์ ๋ฐ๋ณตํฉ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ ์์ ๋ฐ๋ณตํฉ๋๋ค. ์ฆ, ์๋ช
kv
๋ฅผ ์ฌ์ฉํ์ฌ ๋ณธ๋ฌธ์์ ์์ k
๋ฐ v
๋ก ๋ช
์ ์ ์ผ๋ก ๋ถํดํด์ผํฉ๋๋ค. ์ : all
, any
. ์ด๋ฅผ ๊ฒํ ํ๊ณ ์ผ๊ด์ฑ์ ์ ์งํด์ผํฉ๋๋ค.
[x] ๋ณํ ๋ ๊ตฌ์ฑ. ์ ์ ํ ๊ฒฝ์ฐ ๋ณํ์ ํ์ฉํ์ญ์์ค. ์ : convert(String, 'x')
๋ํ ์ฌ๋ฌ ๋ฌธ์ / ์ง๋ฌธ์ด ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋จ์ผ ํ์ค ๋ณํ์ด์๋ ๊ฒฝ์ฐ ๋ณํ์ด ์ ํฉํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์์ด์ ์ซ์๋ก ๋ณํํ๋ ๊ฒ์ ์ซ์๋ฅผ ๋ํ๋ด๋ ํ
์คํธ ๋ฐฉ์์ด ๋ง๊ธฐ ๋๋ฌธ์ ์ ์ ํ์ง ์์ผ๋ฏ๋ก ๋์ ์ต์
์ ์ฌ์ฉํ์ฌ ๊ตฌ๋ฌธ ๋ถ์ํด์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ฌธ์์ด๋ก ๋ํ๋ด๋ ๋จ์ผ ํ์ค ๋ฐฉ๋ฒ์ด ์์ผ๋ฏ๋ก์ด๋ฅผ ๋ณํ ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋์ด ๋
ผ๋ฆฌ๋ฅผ ์ ์คํ๊ณ ๋ณดํธ์ ์ผ๋ก ์ ์ฉํด์ผํฉ๋๋ค.
[] ์ปฌ๋ ์
API์ ์์ฑ๋๋ฅผ ๊ฒํ ํฉ๋๋ค. ๋ค๋ฅธ ์ธ์ด์์ ์ ๊ณตํ๋ ์ปฌ๋ ์
์ ๋ํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๋ฅผ ์ดํด๋ณด๊ณ ๊ทธ๋ค์ด ๊ฐ์ง๊ณ ์๋ ์ผ๋ฐ์ ์ธ ์์
์ ํํํ๋ ๋ฐฉ๋ฒ์ด ์๋์ง ํ์ธํด์ผํฉ๋๋ค. ์๋ฅผ ๋ค์ด, flatten
ํจ์ ๋ concat
ํจ์๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋งํด์ผํฉ๋๋ค.
[] ๋ฐ์ค ๊ฐ์ฌ.
์ด๊ฒ์ด ์ธ๊ธํ๊ธฐ์ ์ ์ ํ ์ฅ์๊ฐ ์๋๋ผ๋ฉด ์ฌ๊ณผํ์ง๋ง ์์ผ๋ก ํจ์ ์ด๋ฆ์ ๋ฐ์ค๊ณผ ๋ ์ผ์นํ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค.
์๋, ์ฌ๊ธฐ๊ฐ ์ข์ ๊ณณ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์, ์ฐ๋ฆฌ๋ ๋ฐ์ค์ด ํ์ํ ๋ชจ๋ ์ด๋ฆ์ ์ ๊ฑฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํด์ผํฉ๋๋ค. :)
@tkelman ์ ๋ ๋ฒ์งธ ์์ ์ https://github.com/JuliaLang/julia/issues/19150์ ์ฐธ์กฐ
find
API ๋ฐ ๊ด๋ จ ๊ธฐ๋ฅ์ ๋ํ ์ต๊ทผ Julep๋ ์์ต๋๋ค : https://github.com/JuliaLang/Juleps/blob/master/Find.md
์ฑ๋์ push!
๋ฐ shift!
๊ฐ ์์ผ๋ฏ๋ก ์ฑ๋์์ put!
๋ฐ take!
๋ฅผ ์ง์ ์ค๋จํด์ผํฉ๋๊น (์ ๋ฌผ์๋ ๋์ผํ๊ฒ ์ ์ฉ)? API์์ ์ค๋ณต ๋จ์ด 2 ๊ฐ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
shift!
์ด (๊ฐ) ์ฌ์ฉ์ ์นํ์ ์ธ์ง ์์ฌ ์ค๋ฝ์ต๋๋ค. ํ๋ณด๋ fetch!
์ฐ๋ฆฌ๋ ์ด๋ฏธ fetch
์ ์ธ ๋น ๋์ฐ๋ณ์ด ๋ฒ์ take!
ref # 13538 # 12469
ํธ์ ๋ด์ ๊ฐ๊ธฐ
ํธ์ง : ์ฑ๋์์ send
๋ฐ recv
๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ๋ ์ด์น์ ๋ง์ต๋๋ค. (ํ์ฌ๋ก์๋ UDPSocket์๋ง ์ฌ์ฉ๋๋ค๋ ์ฌ์ค์ ๋๋์ต๋๋ค)
put!
/ take!
๋ฅผ push!
/ fetch!
๋ก ๋ฐ๊พธ๋ฉด +1
๋๋ ์ด๋ฆ์ ๋ณ๊ฒฝ ์ถ๊ฐ ํ ๊ฒ์
๋๋ค @inferred
์ @test_inferred
.
์ ๋ฌธํ๊ฐ ๋ ์ผ๋ฐ์ ์ธ ๊ธฐ๋ฅ๊ณผ ์ผ์นํ๋์ง ๋ค์ ํ์ธํ์ญ์์ค. ์ฆ # 20233๊ณผ ๊ฐ์ ๊ฒ์ด ์๋๋๋ค.
๋ด ๋ณด๋ธ ๋ชจ๋ ํจ์๋ฅผ ๊ฒํ ํ์ฌ ์ฌ๋ฌ ๋์คํจ์น๋ก ๋์ฒดํ์ฌ ์ ๊ฑฐ ํ ์ ์๋์ง ํ์ธํฉ๋๋ค (์ : print_with_color).
ํ์ ๊ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ์์
ํ ๋ ์ผ๋ฐ์ ์ธ ์์ push!
๋ฐ shift!
์
๋๋ค.
์ด๋ฌํ ์ข
๋ฅ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํด ์ผ๋ฐ์ ์ธ ์ด๋ฆ ์์ ์ฌ์ฉํ์ง ์์ ๊ฒ์
๋๋ค. ์์
์ด ํด๋น ์ด๋ฆ์ผ๋ก ์ ์ ํ๊ฒ ์ ๋ฌ๋์ง ์๋ ํต์ ์ค๋ฒ ํค๋๋ฅผ ์๋ฐ ํ ๊น ๊ฑฑ์ ํ๊ธฐ ๋๋ฌธ์ push!
์๋ฏธ๊ฐ ์์ต๋๋ค. send
๋ฐ recv
์ ๋ง ๋ ์ข์ ์ ์์ต๋๋ค.
ํจ์๊ฐ ํํ์ ๋ง์ง๋ง ์ธ์๋ก ์ฌ์ฉํ๋์ง ์๋๋ฉด vararg๋ฅผ ์ฌ์ฉํ๋์ง๊ฐ์ ์ผ๋ฐ์ ์ธ ์ผ๊ด์ฑ์ด ์๋์ง ๋ค์ ํ์ธํ์ญ์์ค.
์ด ๋ฌธ์ ์ ๋นํด ๋๋ฌด ํด ์๋ ์์ง๋ง ํจ์๊ฐ ์ค๋ฅ๋ฅผ ๋ฐ์์์ผ์ผํ๋์๊ธฐ์ Nullable
s ๋๋ Union
s (์ : parse
๋ฐํํด์ผํ๋์๊ธฐ์ ๋ํ ์ผ๊ด๋ ๊ท์น์ ๊ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค tryparse
, match
๋ฑ)
๋๋ฌด ํฐ ๋ฌธ์ ๋ ์์ต๋๋ค. @simonbyrne โ ์ด๊ฒ์ด ์ธํ ๋ชฉ๋ก์ ๋๋ค.
Btw : ์ด๊ฒ์ ํน์ ๋ณ๊ฒฝ (์ : ํน์ ๊ธฐ๋ฅ์ ์ด๋ฆ ๋ณ๊ฒฝ)์์ํ ๊ฒ์ด ์๋๋๋ค. ๊ฒํ ํ ์์๋ ์ข ๋ฅ์ ๊ดํ ๊ฒ์ ๋๋ค. ์ ์ ๋ ํน์ ๋ณ๊ฒฝ์ ๊ฒฝ์ฐ ํด๋น ๋ณ๊ฒฝ์ ์ ์ํ๋ ๋ฌธ์ ๋ฅผ ์ฝ๋ ๋ค.
code_xxx ์ ๊ฐ์ ๊ธฐ๋ณธ ํจ์์ ์์ ์ด๋ฃจ๋
์ด๊ฒ์ด ๋น์ ์ด ๋งํ๋ ๊ฒ์ธ์ง ํ์คํ์ง ์์ง๋ง CreateMacrosFrom.jl์ ์ฐธ์กฐํ์ญ์์ค.
๋ด ๋ณด๋ธ ๋ชจ๋ ๊ธฐ๋ฅ ๋ฌธ์ํ (doctest ํฌํจ)
์ด๊ฒ์ด ์ด๊ฒ์ ์ผ๋ถ๋ผ๋ฉด, ์๋ง๋ ๋ํ : ๋ฌธ์ / ํ๋ณด ๋ฒํธ๋ก ํ ์คํธ์ ๋ผ๋ฒจ์ ๋ถ์ด๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ๊ทธ ํ ์คํธ๊ฐ์๋ ์ด์ ๋ฅผ ํจ์ฌ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค. ๋๋ git blame์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์๊ณ ์์ง๋ง, ํ ์คํธ ์ธํธ๋ฅผ ์ถ๊ฐ ํ ๋ (์์ ๋ฅผ ๋ค๊ธฐ ์ํด) ๋๋๋ก ํ ์คํธ์ค์ธ ๊ฒ์ด ์ฝ๊ฐ ๋ฏธ์คํฐ๋ฆฌ์ด๋ฉฐ ๋ฌธ์ / ํ๋ณด ๋ฒํธ๊ฐ ํญ์ ์กด์ฌํ๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
@dpsanders : ๋ฐ ๋ด ๋ณด๋ธ ๋งคํฌ๋ก! ์ : @fastmath
์๋ ๋
์คํธ๋ง์ด ์์ต๋๋ค.
์ด๊ฒ์ ๋งค์ฐ ์ฌ์ํ์ง๋ง string
๋ฐ Symbol
ํจ์๋ ๊ฑฐ์ ๋์ผํ ์์
์ ์ํํ๊ณ ๋์ ๋ฌธ์๊ฐ ๋ค๋ฆ
๋๋ค. symbol
๊ฐ ๋ ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@amellnik ์ฐจ์ด์ ์ Symbol
์ ์ ํ ์์ฑ์์ด๊ณ string
๋ ์ผ๋ฐ ํจ์๋ผ๋ ๊ฒ์
๋๋ค. IIRC๋ ์ฐ๋ฆฌ๊ฐ symbol
์์์ง๋ง ํ์
์์ฑ์๋ฅผ ์ํด ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ์ด๋ฅผ ์ํด ๋ณ๊ฒฝ์ด ํ์ํ๋ค๊ณ ํ์ ํ์ง๋ ์์ง๋ง, string
๋์ String
์์ฑ์๋ฅผ ์ฌ์ฉํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ฌธ์์ด ๋์ String ์์ฑ์๋ฅผ ์ฌ์ฉํด์ผํ๋ค๊ณ ์๊ฐํ๋ ๊ฒฝ์ฐ.
์๋์, ์๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ด๋ฏ๋ก ๋ณํฉํ๋ฉด ์๋ฉ๋๋ค.
julia> String(UInt8[])
""
julia> string(UInt8[])
"UInt8[]"
์๋์, ์๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ด๋ฏ๋ก ๋ณํฉํ๋ฉด ์๋ฉ๋๋ค.
์ด๊ฒ์ string(args...)
๋์ sprint(print, args...)
๋์ ์ฌ์ฉ๋์ง ์๋ ์ํฉ์ฒ๋ผ ๋ณด์
๋๋ค. ๊ทธ๋ฌ๋ฉด- string
๋ฐ String
๊ฒ์ด ํผ๋ ์ค๋ฝ์ต๋๋ค. ์์ค ๋ ์ฑ๋ฅ์ ๋ณต๊ตฌํ๊ธฐ ์ํด sprint(::typeof(print), args...)
์ ํนํ ํ ์ ์์ต๋๋ค. ์ด ์ค์ ๋ฐ๋ผ repr(x)
๋ํด sprint(showall, args...)
repr(x)
๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค.
string
๋ฅผ ํธ์ถํ์ฌ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๋ ๊ฒ์ ๊ฝค ํ์ค์ ์ธ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ๊ด์ฐฎ์ ๋ณด์
๋๋ค ....
๋ฌด์ธ๊ฐ๋ฅผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๊ธฐ ์ํด ๋ฌธ์์ด์ ํธ์ถํ๋ ๊ฒ์ ๊ฝค ํ์ค์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์,ํ์ง๋ง ์ฌ๊ธฐ์ String
์ string
์ฌ์ด์ ์ฐ๊ฒฐ์ด ๋์ด์ง๋๋ค.
sprint(print, ...)
์ ์ค๋ณต ๋ ๋๋์
๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ string
, ์ฐ๋ฆฌ๋ ์ด๋ฆ์ ๋ฐ๊ฟ ์ ์์ต๋๋ค sprint
์ string
์ฐ๋ฆฌ๊ฐ ์ป์ ์ ์๋๋ก string(print, foo)
๋ฐ string(showall, foo)
๋ด ์๊ฒฌ์ ์ ์ฝ๋ .
์ผ๊ด์ฑ์ด ๊ณผ๋ ํ๊ฐ๋๋ ๊ฒฝ์ฐ ์ผ ์ ์์ต๋๋ค. ๋๋ "๊ทธ๋ฅ x์ ๋ฌธ์์ด ํํ์ ์ค"์ ๋ํด string(x)
๋ฅผ ๊ฐ๋ ๊ฒ์ด ๊ด์ฐฎ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ฉํ ์ธ์ ๊ธฐ๋ฅ์ ์ง์ ํด์ผํ๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ๊ทธ๋ณด๋ค ๋ ๋ณต์ก ํ ๊ฒฝ์ฐ sprint
์ ๊ฐ์ ๋ค๋ฅธ ์ด๋ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ํ ์ด๋ฆ์ ๋์ ํจ๊ป ๊ด์ฐฎ์ ๊ฒ String(UInt8[])
๋ค๋ฅธ ๊ฒ์ผ๋ก, ์ฌ์ฉ์ด String
๋์ string
. string
๋ ์์ผ๋ก ์ฐ๋ฆฌ๊ฐ ๋ฐํํ๋ ๋ฌธ์์ด ์ ํ์ ๋ณ๊ฒฝํ ์์๋ ์ ์ฐ์ฑ์ ์กฐ๊ธ ๋ ์ ๊ณตํ์ง๋ง ๊ทธ๋ด ๊ฒ ๊ฐ์ง๋ ์์ต๋๋ค.
reinterpret(String, ::Vector{UInt8}
์ด (๊ฐ) ์ ํ ์๋ฏธ๊ฐ ์์ต๋๊น, ์๋๋ฉด reinterpret
์ ๋ํ ๋ง์ฅ๋์
๋๊น?
๋ง์ด๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ๋์ด ํจ์๊ฐ ๋๋๋ก ๋ณต์ฌํ๊ธฐ ๋๋ฌธ์ ์ด๋ฆ์ด ๋ค์ ์คํด์ ์์ง๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ฌ์ค์ด์ง๋ง ๋ฌธ์์ด์ ๋ถ๋ณ์ด์ด์ผํ๋ฏ๋ก ์๋ง ๊ทธ๋ด ์ ์์ต๋๋ค.
String(::IOBuffer)
๋ฉ์๋๋ ์์ง๋ง readstring
๋ก ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ ์ ์์ต๋๋ค.
๋๋ ๋น์ ์ด ์ ์ํ API ๋ณ๊ฒฝ์ ๋ํด์๋ ์๊ฐํ์ง๋ง string(a, b...)
์ ์ธํฐํ์ด์ค๋ ์ธ์๋ฅผ ๋ฌธ์์ด ํํ๊ณ ์ฐ๊ฒฐํ๋ค๋ ๊ฒ์ด๋ฏ๋ก ํธ์ถ ๊ฐ๋ฅํ ์ฒซ ๋ฒ์งธ ์ธ์์ ๋ํด ์ฑ๊ฐ์ ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค. string
์์ ์ฐ๊ฒฐ์ ์ ๊ฑฐํ๋ฉด ์๋ ํ ์ ์์ต๋๋ค.
์, ๋์ํ์ต๋๋ค. ์ผ๊ด์ฑ๊ณผ ๋ฌธ์ ๋ฅผ ํผํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค.
"์ฐจ์ ์ธ์"๋ฒ์ฃผ์ ๋ฌธ์ # 18326 ๋ฐ # 3893์ ์ฃผ๋ชฉํ์ญ์์ค.
๋ค๋ฅธ ํญ๋ชฉ์ ๋ค๋ฃฐ ์ ์๋ค๋ฉด : ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์ปจํ ์ด๋์ ๋์์ด ๋ฌธ์ํ๋๊ณ ์ผ๊ด์ฑ์ด ์๋์ง ํ์ธํ์ญ์์ค.
@ JaredCrean2 : ๊ทธ๊ฒ ๋ฌด์จ ๋ป์ธ์ง ์์ธํ
๋๋ ๊ทธ๊ฒ์ด ๋ง์ "๋ฐฉ์ด ๋ณต์ ๋ฌผ"์ ๋ง๋๋ ๊ฒ์ ํฌํจํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์ ํ์ ๋ฐฐ์ด์ด ์๊ณ ์ฌ๊ธฐ์์ sort
๋ฅผ ํธ์ถํ๋ฉด ๋ฐํ ๋ ๋ฐฐ์ด์ด ์
๋ ฅ ๋ฐฐ์ด๊ณผ ๋์ผํ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌ ํค๊ฑฐ๋ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๊ณ ๋ฐํ ๋ ๋ฐฐ์ด์ด ๊ทธ๋ค?
๊ฐ์ ๋ฌผ๊ฑด. ๋ชจ๋ ์ปฌ๋ ์ ์ ๋ ฌ, getindex, ํํฐ๋ง, ๊ฒ์ ๋ฑ์ ๋ฉ์๋๊ฐ์ด ๊ท์น์ ๋ฐ๋ฅด๊ณ ์๋ค๊ณ ํ์ ํฉ๋๋ค.
์ ๋ ๊ทธ ์ ์ ๋ํด ๋ช ํ์ฑ์ด๋ ์ผ๊ด์ฑ์ด ๋ถ์กฑํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ํญ์ ๊ฐ์ ๋์์ ๋๋ค.
์ฌ์ค, ๊ทธ๋ ์ง ์์ ์ ์ผํ ํ์ค ํจ์๋ deepcopy
์ด๋ฉฐ, ์ฌ๊ธฐ์ ์์ ์ ๋ชจ๋ ์ ๊ฐ์ฒด๋ฅผ ์ป๋ ๊ฒ์
๋๋ค.
์ด๋๊ฐ์ ๋ฌธ์ํ๋์ด ์์ต๋๊น?
์๋์ค โ ์ฐ๋ฆฌ๋ ํ ์ ์์ง๋ง ๊ทธ๊ฒ์ ๋ฌธ์ํํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ๊ณณ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํจ์๊ฐ ๋ถํ์ํ๊ฒ ๋ณต์ฌํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ทธ๋ค์ด ํ ์์๋ ์ธ์์ ์ด๋์ ์ป์์ต๋๊น?
์๋ ํ์ธ์. ๋๋ ๋ฐ์ดํฐ ์ง๋ ฌํ์ ๋ํ ๋ฐ์ธ์ ๋ณด์ง ๋ชปํ์ต๋๋ค.
์กฐ๋ง๊ฐ julia ํ๋ก๊ทธ๋จ์ด ์์ฑ๋๊ณ ๊ณต๊ฐ์ ์ผ๋ก ์คํ๋ ๊ฒ์ด๋ฉฐ ๋ฐ์ดํฐ๋ ๋๋๋ก ๋ช ๋ ๋์ ๊ณ์ธตํ๋๊ธฐ ์์ํ ๊ฒ์ ๋๋ค. ๋ฐ์ดํฐ ์ง๋ ฌํ ์. ์ฒด์ธ : ๊ฐ์ฒด๋ ์ ํ (json ๋๋ ... ์ผ ์ ์์)์ ์ํด ๊ตฌ๋๋๋ ๋ฐ์ดํธ๋ก ์๊ฐ ๋ณต์๋ ฅ์ด ์๋๋ก ๋น๋๋์ด์ผํฉ๋๋ค. ์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ์น API์ ๋ํด ์๊ฐํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค.
์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์ง๋ ฌํ๊ฐ https://github.com/JuliaLang/julia/blob/v0.5.1/base/serialize.jl์ ๊ฐ๊น๊ฒ ์ ์ง ๋ ๊ฒ์ผ๋ก ์์ ํ ์ ์์ต๋๊น?
ํจ์๊ฐ ๋ถํ์ํ๊ฒ ๋ณต์ฌํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ทธ๋ค์ด ํ ์์๋ ์ธ์์ ์ด๋์ ์ป์์ต๋๊น?
๋๋ ๊ทธ๋ค์ด ๊ทธ๋ ์ง ์์์ง ๋ชจ๋ฅธ๋ค. ๋ด๊ฐ ๋งํ ์์๋ ํ, ํ๋์ ์ ์๋์ง ์์์ต๋๋ค. @JeffBezanson ์ ์๊ฒฌ์์ ๊ทธ๊ฐ ๋ฐ๋ํ๋ ๋ฐฉ์ด์ ์ธ ์ฌ๋ณธ์ ๋ง๋๋ ๊ฒ์ ์นํธํ๋ ์ฌ๋๋ค์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์๋ ์ด๋๊ฐ์์ ๋ฐฉ์ด ๋ณต์ฌ๋ณธ ๋ฌธ์ ๋ฅผ ๋ค๋ฃจ์ด์ผํฉ๋๋ค.
๋น์ ์ ์ด๋ค ์ข ๋ฅ์ ์ต์ ๋์ ์๋ฆฌ๋ฅผ ์์ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ธ๋ถ ์ฌํญ์ ๋ฐ๋ผ "์ต์ ๋์"์ด ๋ฌด์์ธ์ง ๋ชจํธํด์ง๋๋ค. API ์ ์ฒด์์ ์ผ๊ด์ฑ์ ์ป์ผ๋ ค๋ฉด ๋ ๊ตฌ์ฒด์ ์ธ ์ง์นจ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@ o314 : ์ด๊ฒ์ API ์ผ๊ด์ฑ ๊ฒํ ๋ฌธ์ ์ ๋๋ค. ์ง๋ ฌํ๊ฐ ์ด๋ป๊ฒ ๊ด๋ จ๋๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@ JaredCrean2 : ์ต์์ ๊ฐ์ฒด๊ฐ ๋ณต์ฌ๋์๋์ง ์ฌ๋ถ๋ ํ์คํ ๋ฌธ์ํ ๋ ํ์๊ฐ ์์ต๋๋ค. ๋ด๊ฐ ๋งํ๋ ๊ฒ์ deepcopy (๋ถ๋ช ํ)๋ฅผ ์ ์ธํ๊ณ ๋ ๋ ๊น์ ๊ฐ์ฒด๋ ๊ฒฐ์ฝ ๋ณต์ฌ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ๋งํ๋ ๊ฒ์ deepcopy (๋ถ๋ช ํ)๋ฅผ ์ ์ธํ๊ณ ๋ ๋ ๊น์ ๊ฐ์ฒด๋ ๊ฒฐ์ฝ ๋ณต์ฌ๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
์ผ๋ถ ๋ฐฐ์ด ๋ํผ์ ๋ํด copy
์ปจํ
์คํธ์์ ์ด์ ๋ํ ์ต๊ทผ ๋
ผ์๊ฐ์์์ต๋๋ค (์ : SubArray
๋ฐ SparseMatrixCSC
๋ฐ Symmetric
, LowerTriangular
. ์์์ ์ธ๊ธ ํ ์ ์ฑ
์ ๋ฐ๋ผ copy
๋ ๊ทธ๋ฌํ ๋ํผ ์ ํ์ ๋ํ noop์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ฌ๊ธฐ์ ์ธ๊ธ ํ ์ ์ฑ
์ด ์ ์ ํ ์ถ์ํ ์์ค์
๋๊น? ์๋ฅผ ๋ค์ด Array
s๊ฐ Julia์์ ๊ตฌํ ๋ ๊ฒฝ์ฐ (๋ฒํผ ๋ํ) Array
์ copy
๋์์ด noop๋ก ๋ณ๊ฒฝ๋์ด์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
๋ ๊น์ ๊ฐ์ฒด๋ ์ ๋ ๋ณต์ฌ๋์ง ์๋๋ค๋ ๊ฒ์ด ๊ด๋ก๋ผ๋ฉด ๋จ์ ๊ฒ์ ๋ฌธ์ํํ๋ ๊ฒ๋ฟ์ ๋๋ค. ๋ฌธ์ํ๋ API์์ ์ ๋ง ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ์ด ๋์์ (์๋ง๋ ์ฝ๋์ ์ผ๋ถ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์) ๋ถ๋ช ํด ๋ณด์ผ ์ ์์ง๋ง ์ธ๋ถ ๊ด์ ์์๋ ๊ทธ๋ ๊ฒ ๋ช ํํ์ง ์์ต๋๋ค.
ํธ์ง : Andreas ๊ฒ์๋ฌผ์ ๋ณด์ง ๋ชปํ์ต๋๋ค. ํฅ๋ฏธ๋ก์ด ๊ณ ๋ ค ์ฌํญ์ ๋๋ค.
@StefanKarpinski ๋๋ ๋น์ ์ ์์ ์ ๋์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ธ๊ธ ๋ ๋ชจ๋ ์ฃผ์ ์ฃผ์ ๋ ๋งค์ฐ ํ๋ฅญํ๊ณ ์๋ฆฌํฉ๋๋ค.
ํ์ง๋ง ์ค๋ฆฌ์์ ํ๋ก์ธ์ค์ ๋ฐ์ดํฐ ๊ฐ์ ๊ท ํ์ ๋ํด ๋๋๋ก ์ฝ๊ฐ์ ๋๋ ค์์ด ์์ต๋๋ค.
fortran ๋๋ c๋ฅผ ์ฝ๊ฒ ํธ์ถ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฝ๋๋ ์๋ฅผ ๋ค์ด ์ต์ ๋ฐ์ดํฐ ์ผํฐ์ ์ฝ๊ฒ ๋ฐฐํฌ๋ฉ๋๋ค. ์๋น์ค ํจํด์ผ๋ก์์ ๊ธฐ๋ฅ์ ๊ฐ์ง aws lambda. ์ธํฐ๋ท, ์คํ API๋ฅผ ํตํด ์ฝ๋๋ฅผ ์ฝ๊ฒ ํธ์ถ ํ ์ ์์ต๋๊น?
๋๋ก๋ ํ์ฅํ๊ธฐ ์ํด ๊ธฐ๋ฅ ๋ถํ๋ฅผ ๋ฎ์ถ๊ณ (์ผ๋ฐ, ํจ์ ์๋ช ์ ๋ํ vaarg ์์, ๊ณต๊ฐ API์ ๋ํ ์์ ์์ ์์) ๋ ์ฒด๊ณ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํด์ผํฉ๋๋ค (json ์คํค๋ง / openapi).
๋๋ ์ด๋ฐ ์์ผ๋ก ๊ฐ๋ผ ์๋ ์์ฃผ ์ข์ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ณด์๊ณ ๊ทธ๊ฒ์ ์ ๊ฐ์ ๋๋ค.
์น์ ์ฝ๊ฒ ๋ฐฐํฌ ํ ์ ์๋๋ก ๋ฐ์ดํฐ์ ๊ธฐ๋ฅ์ ๊ท ํ์ ์ ์งํ๊ณ ๋ชจ๋ ์์ผ๋ก ์ ์งํ๋ ๊ฒ์ด ์ธ์ด 1.0์ ์ค์ํ ์ง์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ธฐ๋ฅ์ ์ํด ์ธํฐํ์ด์ค๋ ํ์์ ๋ฐ๋ผ ์ ์ ๋๋ฌผ์ด ์ ๊ณ ๊ฐ์ถ ์งํฅ์ ์ด์ด์ผํฉ๋๋ค.
์ด ์ฃผ์ ์ ์์ ์ด ์๋ ์๋ ์์ต๋๋ค.
@StefanKarpinski ๊ทํ์ ๊ฒ์๋ฌผ์ ์คํดํ์ ์ ์์ต๋๋ค. ๋น์ ์ด ๋งํ์ ๋
์ต์์ ๊ฐ์ฒด๊ฐ ๋ณต์ฌ๋์๋์ง ์ฌ๋ถ๋ฅผ ํ์คํ ๋ฌธ์ํํด์ผํ๋์ง ์ฌ๋ถ
"์ต์์ ๊ฐ์ฒด"๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น? x::Vector{MyMutableType}
์ด์๋ ๊ฒฝ์ฐ ์ต์์ ๊ฐ์ฒด๋ x
x
์
๋๊น, ์๋๋ฉด
์ต์์ ๊ฐ์ฒด๋ x
์ ์์๊ฐ ์๋๋ผ x
์์ฒด๋ฅผ ์ฐธ์กฐํฉ๋๋ค.
@andreasnoack ์ต์์ ๊ฐ์ฒด์ ๊ฐ๋ ์ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ด ์๋๋ผ ๊ตฌํ ๋ ์ถ์ ๊ตฌ์กฐ๋ฅผ ์ฐธ์กฐํด์ผํฉ๋๋ค.
float
๋ฐ ์ ํ ๋ ๊ฐ์ ๋ชจ๋ ์์ฉํ๋ ๊ธฐํ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ถ๊ฐ ํ ์ ์์ต๋๊น?
0.6 ๋ฆด๋ฆฌ์ค ๋
ธํธ๋ฅผ ์ดํด๋ณด๋ฉด iszero(A::Array{T})
๊ฐ ๋์
๋ ๋ฐ๋ฉด ๋ฐฐ์ด์ ๋ํ ๋ค๋ฅธ ๋ง์ ํจ์ (์ : sumabs
, isinteger
, isnumber
)๋ all(f,A)
๋์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
๋ฐฐ์ด์ด 0์ด๊ณ ๋ฒกํฐ ๊ณต๊ฐ์ 0 ์์๊ฐ ์์ต๋๋ค. iszero
์ผ๋ฐ์ ์ผ๋ก ๋ฌด์ธ๊ฐ๊ฐ ๊ฐ์ฐ ์ ์ญ์ธ์ง ์ฌ๋ถ๋ฅผ ํ
์คํธํฉ๋๋ค.
๋ . ํจ์ ์ด๋ฆ์์ ๋ฐ์ค์ ์ผ๊ด์ฑ, ์ฌ๊ธฐ์ count_ones
๋ฐ count_zeros
๋ํ ํ์ ๊ฒฝ๋ก๊ฐ ์์ต๋๋ค.
Julia API๋ฅผ ์ผ๊ด๋๊ฒ ์ ์งํ๋ ค๋ฉด (a) API ๊ท์น / ์ปจ๋ฒค์ ์ด ๋ฌด์์ธ์ง ์ง์ ํ๊ณ , (b) Julia ์ฝ๋์ ์ ์ ๋ถ์์ ์ํํ์ฌ ๊ฐ์ง ํ ์์๋ ์ํํธ์จ์ด๊ฐ ํ์ํฉ๋๋ค. ์ด๋ฌํ ๊ท์น / ํ์ฝ์์ ๋ฒ์ด๋ ๊ฒฝ์ฐ (c) ์ ์์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ Julia Base์ ๋ชจ๋ Julia ํจํค์ง ๋ชจ๋์ ๋์์ด๋ฉ๋๋ค. ์๋ก์ด Julia ํจํค์ง๊ฐ ํธ๋ฆญ์ ์ํ ํ ์ ์์ต๋๋ค. (Tongue in cheek :์ด ํจํค์ง๊ฐ ๊ฐ์ฅ ๋จผ์ ํด์ผ ํ ์ผ์ APICheck.jl, ApiCheck.jl, API_Check.jl, APIChecker.jl, JuliaAPIChecker.jl ๋ฑ) ์์ฒด ์ด๋ฆ์ ์ ์ํ๋ ๊ฒ์ ๋๋ค. ์ ๋ Julia๋ฅผ ์ฒ์ ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ฐ ์ผ์ ์ฃผ๋ํ๊ณ ์ถ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๊ธฐ์ฌํ๋ ๊ฒ์ ๊บผ๋ฆฌ์ง ์์ ๊ฒ์ ๋๋ค. ์ด ์์ ์ ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์์ด ์์ต๋๊น?
์ฐ๋ฆฌ๋ Lint.jl์ ๊ทธ๊ฒ์ ๊ฐ๊ณ ์ถ์ต๋๋ค!
num2hex
๋ฐ hex2num
(# 22031 ๋ฐ # 22088)
์ ๋ Lint.jl์ด Julia API ์ผ๊ด์ฑ ๊ฒ์ฌ์ ์ ํฉํ ํจํค์ง๋ผ๊ณ ๋ฏฟ์ต๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ๊ทธ ๊ธธ์ ๊ฐ๋ฉด ์คํ ํ์ ์๋ ๋ชฉ๋ก์ด ํจ์ฌ ๋ ์ ํ ํด์ ธ์ผํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ทธ๊ฐ "DataStructures์ ๋ชจ๋ ์ปฌ๋ ์ ์ ์ผ๊ด๋ API๊ฐ ์๋์ง ํ์ธํด์ผํฉ๋๋ค"๋ผ๊ณ ์ผ์ ๋ ๋ ์ค๋ฅด๋ ์ง๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ฌํ ์ธ๋ฒคํ ๋ฆฌ์ ๋ถ์์ ๊ด๋ฆฌํ๊ธฐ ์ํด ํ๋ก์ ํธ๋ฅผ Julia ์ ์ฅ์ (ํ๋ก์ ํธ # 8), JuliaPraxis ์ ์ฅ์ (TotalVerb์์ ์คํ๋ผ์ธ์ผ๋ก ์ ์) ๋๋ Lint ์ ์ฅ์์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋๊ฐ ๊ทธ๋ฌํ ํ๋ก์ ํธ๋ฅผ ์์ ํ ๊ฒ์ธ์ง, ์ด๋ค ์ฌ๋๋ค์ด ์ฒ์๋ถํฐ ์ฐธ์ฌํด์ผํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค๋ฆฌ์ ๊ท์น์ด ์ค์ ๋ก ๋ฌด์์ธ์ง์ ๋ํ ์ต์ข ๊ฒฐ์ ์ ๋ด๋ ค์ผํ๋ ์ฌ๋์ ๋ถ๋ฅํด์ผํฉ๋๋ค (๋ฆฐํ ๋ชฉ์ ์ ์ํด).
๊ทธ๋ฌ๋์ด ๋ผ์ธ์ ๋ฐ๋ผ ๋ ์งํํ๊ธฐ ์ ์ @StefanKarpinski ์๊ฒ ๋ฌผ์ด๋ณด๊ณ
๋๋ ์ด๊ฒ์ ๊ตฌ์ฒด์ ์ผ๋ก ๋ช ์ํ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ทธ ๋ชฉ๋ก์ด ๋ฌด์์ธ์ง ์์๋ด๋ ๊ฒ์ ์ฌ๊ธฐ์ ์์ ์ ์ผ๋ถ์ ๋๋ค. ๋ง์ฝ ๋น์ ์ด ๊ทธ๊ฒ์ ๊ท ์ด์ ๊ฐ๊ณ ์ถ๋ค๋ฉด ๊ทธ๊ฒ์ ์ข์ ๊ฒ์ ๋๋ค.
Base.datatype_module๊ณผ Base.function_module์ด ์ ๋ง๋ก ํ์ํฉ๋๊น?
๋ฐ์ดํฐ ์ ํ๊ณผ ํจ์๋ฅผ ์ ๋ฌํ๋ ํตํฉ ํจ์ "๋ชจ๋"(์ด์ฉ๋ฉด getmodule)์ด ๋์๊ฒ ๋ ์ผ๊ด๋ ๊ฒ ๊ฐ์ต๋๋ค.
@code_typed
๋ฐ ์น๊ตฌ์ ๋ฐ์ค์ ์ด๋ป์ต๋๊น?
์ด๋ ๋ฆฌํฉํ ๋ง์ ํ ์์๋ ์ข์ ๊ธฐํ์
๋๋ค (๋ฐ์ค ๊ธ์ง์ ๋ํ ๋ช
์๋ ์ด์ ). ์ฒซ ๋ฒ์งธ ์ธ์๊ฐ ์ํ๋ ์ฝ๋ ์ ํ ์ธ @code
๋งคํฌ๋ก๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค.
( @bramtayl , ๋งคํฌ๋ก ์ฃผ๋ณ์ ๋ฐฑํฑ์ ๋๋ ๊ฒ์ @code
)
FWIW, ํญ ์์ฑ์ ํจ์ ์ด๋ฆ์์๋ง ์๋ํฉ๋๋ค. @code_<TAB>
ํ ์ ์๋ค๋ ๊ฒ์ ์ข์ ์ผ์
๋๋ค ....
๋ฆฌํฉํ ๋ง์ด ๊ณ ๋ ค๋์์ง๋ง ๊ฑฐ๋ถ ๋ ๊ฒฝ์ฐ ๋ฐ์ค์ด ์๋์ง ์ฌ๋ถ๋ ๋ ผ์์ ์ฌ์ง๊ฐ ์์ต๋๋ค. ๋ฐ์ค ๊ธ์ง์ ์ ์ผํ ์์ ์ ๋ฆฌํฉํ ๋ง์ ์ฅ๋ คํ๋ ๊ฒ์ ๋๋ค. ์ฌ์ค์ด ๊ฒฝ์ฐ์๋ ์ธ์ด๋ฅผ ๋ ๋ช ํํ๊ฒํ๊ธฐ ์ํด ๋ฐ์ค์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ฐ์ฌ๋ฅผ ๊ฐ์กฐํ์ญ์์ค.
๋ฐ๋ ์ ์ : ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ด๋ฌํ ์ด๋ฆ์ ๊ฐ์ฌํ์ง๋ง ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ฝ์ ์์๋ ๊ณณ์ ๋ฐ์ค์ ๋ ์ถ๊ฐํฉ๋๋ค (codetyped vs code_typed, isos2 vs is_os2).
๋๋ ์ด๊ฒ์ ๋ํด ์ ๋์ฃผ์์๊ฐ ์๋๋๋ค. @KristofferC๊ฐ ์ง์ ํ๋ฏ์ด code_typed
์ ๊ด์ฐฎ๊ณ , ์ ์ฉํ๊ฒ ํญ ์์ฑ์ด๋ผ๊ณ
๋์๊ฒ๋ ๋ฐฐ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก๋ฒ ์ด์ค์ ์ ๋ฐ์ ์ ๊ฑฐํด์ผํ๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ๋ฐ์ค์ ์ถ๊ฐํ์ฌ ํญํด ํ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ์๋ฅผ ๋ค์ด, is
์์ํ๋ 74 ๊ฐ์ ์ ์ด ํจ์์ is_
์์ํ๋ 6 ๊ฐ๋ง ์์ต๋๋ค. 6 ๋๋ 74๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์
๋๊น?
์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ์์ถฉ๋๋ ๋ชฉํ๊ฐ ์์ต๋๋ค.
1) ์ด๋ฆ์ ๋ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ค๊ธฐ
2) ์ฝ๋ ์ดํ ๊ฐ์
3) ๋ฆฌํฉํ ๋ง ์ฅ๋ ค
๋จ์ด๋ฅผ ํจ๊ป ์ถฉ๋์์ผ ๋ฐ์ค์ ์ ๊ฑฐํ๋ ๊ฒ์ 3 ๊ฐ์ ์ ์ ๋ชจ๋์์ ์คํจํฉ๋๋ค.
์คํธ๋ฆผ์ ์๋ฝํ๋ show
๋ฉ์๋๊ฐ !
๋์ง ์์ ๊ฒ์ ์ผ๋ฐ์ ์ธ ๊ท์น๊ณผ ์ผ์นํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. Ref. https://github.com/JuliaLang/julia/pull/22604/commits/db9d70a279763ded5088016d9c3d4439a49e3fca#r125115063. ๋ฒ ์คํธ! (ํธ์ง : ์ด๊ฒ์ด ์คํธ๋ฆผ์ ๋ฐ์๋ค์ด๋ write
๋ฉ์๋์ ์ผ์นํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.)
ํธ๋ ์ด ํธ API์ ๋ถ์ผ์น๊ฐ ์์ต๋๋ค. ์ผ๋ถ ํน์ฑ์ ๋ค์๊ณผ ๊ฐ์ ํน์ฑ์ ํธ์ถํ์ฌ ๊ณ์ฐ๋ฉ๋๋ค.
TypeArithmetic(Float64)
์ด ํจ์๋ ์๋ฌธ์๋ก ํ๊ธฐํด์ผํฉ๋๋ค.
iteratorsize(Vector{Float64})
size
-> shape
(xref # 22665)์ ์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ด ์ข์ต๋๋ค.
Array{T,1}()
๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
julia> Array{Int,1}()
0-element Array{Int64,1}
julia> Array{Int,2}()
WARNING: Matrix{T}() is deprecated, use Matrix{T}(0, 0) instead.
์ปฌ๋ ์ ์ ๋ํด ์๊ฐํ๊ณ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ธ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ต๋๋ค.
k=>v
์.๋๋ ๋์
๋๋ฆฌ์ ๊ฐ์ ํ๋์ ํ์์ ์ด์์ต๋๋ค. ์ํ ๊ด์ฐ์ ์นด๋๋ฆฌ์๋ map
์ด๋ฉฐ ํค-๊ฐ ์์์ ์๋ํ๋ ๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก ํค ์งํฉ์ ๋ณ๊ฒฝํ์ง ์๊ธฐ ๋๋ฌธ์ ์์ฐ์ค๋ฝ์ง ์์ต๋๋ค. ๋ฐฐ์ด๊ณผ ์ฌ์ ์ด ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค.
keys
๋ eachindex
mapindexed
๋ฐ filterindexed
๋ ์ฌ์ ๊ณผ ๋ฐฐ์ด ๋ชจ๋์ ์ ์ฉํฉ๋๋ค. ํจ์์ ํด๋น ํญ๋ชฉ์ ์ธ๋ฑ์ค๋ฅผ ์ ๋ฌํ๋ค๋ ์ ์ ์ ์ธํ๋ฉด ๋งต ๋ฐ ํํฐ์ ์ ์ฌํฉ๋๋ค.zip(keys(c), values(c))
๋ํ ๋ฐ๋ก ๊ฐ๊ธฐ ์ธ pairs
๋ฐ๋ณต์๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.ind2sub
๋ฐ sub2ind
์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค. ์ด๋ ๋ถ๋ช
ํ matlabism์ด๋ฉฐ ๋น matlab ์ฌ์ฉ์์๊ฒ๋ ์ค๋ฆฌ์๋๊ฐ ์๋ ์ด์ํ ์ด๋ฆ์๊ฐ์ง๋๋ค. ๊ฐ๋ฅํ ์ด๋ฆ์ ๊ฐ๊ฐ indice
๋ฐ linearindice
์
๋๋ค. ์ฌ๋๋ค์ด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ๋ชจ๋ฅด๊ฒ ๊ธฐ ๋๋ฌธ์ ๊ฐํ PR์ ๋ง๋ค์ง ์์์ง๋ง ์ง์์ด ์์ผ๋ฉด ํ ๊ฒ์
๋๋ค.
rad2deg
๋ฐ deg2rad
ํฉ๋๋ค.
Ref. # 22791 ( select
-> partialsort
). ๋ฒ ์คํธ!
๋ด๊ฐ ์ฌ๊ธฐ์ ๋ณด์ง ๋ชปํ ํ ๊ฐ์ง๋ : ์ ํ์ ์์น ์ธ์๊ฐ ์ฒ์ ๋๋ ๋ง์ง๋ง์ผ๋ก ์ด๋ํฉ๋๊น? sum(f, itr)
๋ฐ rand([rng,] ..)
์ ๊ฐ์ด ์ ํ์ ์์น ์ธ์๊ฐ ๋จผ์ median(v[, region])
๋๋ split(s::AbstractString[, chars])
. ๋๋๋ก ๊ทธ๋ค์ ์ฒ์ ๋๋ ๋ง์ง๋ง์ผ๋ก ๊ฐ ์ ์์ง๋ง ๋๋ค๋ ์๋๋๋ค! (์๋ฅผ ๋ค์ด, mean
๋ ํจ์๋ฅผ ๋จผ์ ์ฌ์ฉํ๊ฑฐ๋ ๋ง์ง๋ง ์ฐจ์์ ์ฌ์ฉํ ์ ์์ง๋ง ๋ ๋ค ์ฌ์ฉํ ์๋ ์์ต๋๋ค.)
ํ์ฌ ์ธ์ด ์๋งจํฑ์ ์ ํ์ ์ธ์๋ฅผ ๋ง์ง๋ง์ผ๋ก ๊ฐ์ ํฉ๋๋ค. f(a, b=1)
๋ ์ธ ์ ์์ง๋ง f(b=1, a)
๋ ์ธ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ์ ํ์ ์ธ์๊ฐ ๋ง์ง๋ง์ผ๋ก ๊ฐ๋ฉด ํธ๋ฆฌํ do ๋ธ๋ก์ ์ด๋ป๊ฒ ๋ ๊น์?
๋ค๋ฅธ ๊ฒ์ด ์๋ค๋ฉด, rand.jl
: shuffle!(a::AbstractVector) = shuffle!(GLOBAL_RNG, a)
์์ ์ธ์ด๊ฐ ์ด์ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ ์ํด์ผํ๋ค๋ ๊ฒ์ ์ฌ์ํ ์ฌ๋ง๊ท์
๋๋ค. ์ ํ์ ์์น ์ธ์ ๊ตฌ๋ฌธ์์ด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ ํํ ์ฒ๋ฆฌํด์ผํฉ๋๋ค.
์๋ง๋ ๋ณ๋์ ๋ฌธ์ ๋ก ๋ค์ด๊ฐ์ผ ํ ์๋ ์์ง๋ง ์ํ๋ ๊ณณ์ผ๋ก ์ ํ์ ์ธ์๋ฅผ ์ด๋ํ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด f(a = 1, b, c = 2)
๋ f(x) = f(1, x, 2)
๋ฐ f(x, y) = f(x, y, 2)
์์์ ์์น์์ ๊ธฐ๋ณธ ์ธ์๋ฅผ ํ์ฑํํ๋ ค๋ (์ธ๊ธฐ์๋) ์๋์ ๋ํ xref # 22460.
warn
์ warning
(matlab์์๋ ์ฌ์ฉํจ)๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ํฐ ๋ฌธ์ ๊ฐ ์๋์ง๋ง ์ ๊ฐ ์ธ๊ธ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐ ํ์ต๋๊น?
throw
์ ๊ฐ์ด ๋์ฌ์ด๊ธฐ ๋๋ฌธ์ warn
์ข์ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ๋ํด ๋งค์ฐ ํผ๋์ค๋ฌ์ํ์ต๋๋ค.
julia> f(;a=1,b=1) = a+b
f (generic function with 1 method)
julia> f(a=4,5) # I intended to write f(a=4,b=5)
ERROR: MethodError: no method matching f(::Int64; a=4)
Closest candidates are:
f(; a, b) at REPL[13]:1
ํค์๋ ํจ์๋ฅผ ์ ์ ํ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ํจ์๋ฅผ ํธ์ถ ํ ๋๋ง ํค์๋๋ฅผ ๋ง์ง๋ง์ผ๋ก ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ํค์๋ ํจ์๋ฅผ ์ ์ ํ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ํจ์๋ฅผ ํธ์ถ ํ ๋๋ง ํค์๋๋ฅผ ๋ง์ง๋ง์ผ๋ก ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ค๋ฅธ ์์น์ ํค์๋๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ด ์ ์ฉํ๊ณ ์ธ์ฒด ๊ณตํ์ ์ธ API๊ฐ ๋ง์ด ์์ต๋๋ค.
ํธ๊ธฐ์ฌ์์ ์์น ๋ฐ ํค์๋ ์ธ์์ ๋ํด ์ ์ ๋ ํ๊ฐ ์์๊ฐ ์์ต๋๊น? ๋ช ๊ฐ์ง ์ค๋๋ ๋ฌธ์ ๋ฅผ ๋ณด์๊ณ https://docs.julialang.org/en/latest/manual/functions/#Evaluation -Scope-of-Default-Values-1์์ ๋ฒ์์ ๋ํด ์ด์ผ๊ธฐํ์ง๋ง ์๋ฅผ ๋ค์ด ์ธ์๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ๊ฐ๋๊ฑฐ๋ ๋ชจ๋ ์์น ์ธ์๊ฐ ๋ชจ๋ ํค์๋ ์ธ์๋ณด๋ค ๋จผ์ ํ๊ฐ๋๊ฑฐ๋ ์ ์ ๋ ํ๊ฐ ์์ (๋๋ ๋ค๋ฅธ ํญ๋ชฉ)๊ฐ์๋ ๊ฒฝ์ฐ ํ๊ฐ๋ฉ๋๋ค.
@yurivish , ํค์๋๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค (https://github.com/JuliaLang/julia/issues/23926). ์ ํ ์ฌํญ์ ๊ฒฝ์ฐ ์ด์ผ๊ธฐ๊ฐ ์กฐ๊ธ ๋ ๋ณต์ก ํฉ๋๋ค . ์์ต๋๋ค . (https://discourse.julialang.org/์์ ์ง๋ฌธํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค.)
์์ฒด ๋ฌธ์ ๋ก ๋ณผ ๊ฐ์น๊ฐ์๋ ๊ฒ ๊ฐ์ง๋ง bits(1)
์ด String
๋ฐํํ๋ค๋ ๊ฒ์ด ํญ์ ์ด์ํด ๋ณด์
๋๋ค. BitVector
๋๋ Vector{Bool}
์ด์ด์ผํฉ๋๋ค
Function
๋๋ Callable
๋์คํจ์นํ๋ ๋ฉ์๋ ํ
์ด๋ธ์ ๋ํ ๋ฆฌ๋ทฐ๋ฅผ ์ ์ํ๊ณ ์ถ์ต๋๋ค. ์ด๋ฌํ API๊ฐ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ฐฉ์์ธ์ง ํ์ธํ๊ณ , ์ด๋ค ๊ฐ์ฒด ๋ ๋ ํธ์ถ์ ํ์ฉ ํ ์ ์๋๋ก ํ
์ด๋ธ์ ์ฌ๊ตฌ์ฑ ํ ๊ธฐํ๋ฅผ ๋์น๊ณ ์์ง ์์์ง ํ์ธํด ๋ณด๊ฒ ์ต๋๋ค.
all
๋ฐ any
, ์ด๋ฏธ all(Generator(f, xs))
์ํ ๊ฐ์ ๋ all(f(x) for x in xs)
์ผ๋ก ์ฌ์ฉ ์ค๋จ๋๋ ๊ฒ์ด ๊ฐ๋จ ํด ๋ณด์ด๋ฏ๋ก ์ค๋ฒ ํค๋๊ฐ ์์ด์ผํฉ๋๋ค.
๊ทธ๊ฒ์ด ๋น์ ์ด ์๋ฏธํ๋ ๋ฐ์ธ์ง ํ์คํ์ง ์์ง๋ง, ๊ฒฝ์ฐ์ ๋๋นํด ์ธ๊ธ ํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์ ๋ ์ ๋๋ ์ดํฐ์ ๋ํ ๊ธฐ๋ฅ์ ์คํ์ผ API๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ๋ํด ํ๋ ์ฝ์ด ์
๋๋ค. ์ฐ๋ฆฌ๋ any(f, x)
์ all(f, x)
๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๊ฒ๋ค์ ์ ๊ฑฐํ๊ธฐ ์ํด -10000000 (๋๋ ์ค์ ๋ก ๊ทธ๋ฌํ ๋ฐฉ๋ฒ).
์ ํ๋ก ์์ฑ๊ธฐ. ๊ฒ์ผ๋ฅธ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์์ฒ๋ผ ๋ณด์ด๋ฉฐ ๋ด ๋ณด๋ด์ผํฉ๋๋ค. all(Generator(f, xs))
all(f(x) for x in xs)
๋ณด๋ค ์ ์ ๋ ํจ์์ ๋ ํธ๋ฆฌ ํ ๋๊ฐ ์์ต๋๋ค. ๋ํ ๊ท ํ์ ํ๋ณตํ๊ธฐ ์ํด +10000000
๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ฌ๊ธฐ์ ๊ตฌ๋ฌธ์ด ์ ์ ๊ฒ์ ์ ํธํฉ๋๋ค. "xs๋ฅผ ์ทจํ๊ณ , f๋ฅผ ๋ชจ๋ ๊ฒ์ ์ ์ฉํ๊ณ , ๋ชจ๋ ๊ฒ์ด ์ฐธ์ด๋ฉด ์ฐธ์ ๋ฐํํ๋ค"๋ผ๋ ์๊ฐ์ ํํํ๋ ๊ฒ์ด ์ฝ๊ณ ์ฝ๊ธฐ ์ฝ๊ณ ์ฑ๋ฅ์ด ์ข๋ค๋ฉด ์ ๊ทธ๊ฒ์ ํ๋์ ๋์ฌ์ ๋ฃ์ด์ผํ ๊น์?
f(x) for x in xs
์ ๋ถํ์ํ ๋ช
์ฌ x
๊ฐ ์ฐ๋ ค๋๋ ๊ฒฝ์ฐ Generator
๋ด๋ณด๋ด๊ธฐ์ ๋ํ @bramtayl ์ ์ ์ (์๋ง๋ Map
์ ๊ฐ์ ๋ ๋์ ์ด๋ฆ ์ฌ์ฉ?) ๋ง์ด๋๋ค.
all(isnull, x)
๊ฐ์ ๊ฒ์ all(isnull(v) for v in x)
๋ณด๋ค ํจ์ฌ ๊ฐ๋จํฉ๋๋ค. all(isnull, x)
๋์ NullableArrays์์ allnull
ํจ์๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๊ตฌ๋ฌธ์ด ์ฌ๋ผ์ง๋ฉด ์๋ง ๋ค์ ๋์
ํด์ผ ํ ๊ฒ์
๋๋ค.
์ด๋ป๊ฒ ์ด๋ฆ ๋ฐ๊พธ๊ธฐ์ ๋ํ strwidth
์ stringwidth
(๋์ด ์บ๋ฆญํฐ ๋ผ์ธ์ ๋ฌธ์์ด์ ์ถ์ฝ ํ ์ ์ผํ ์์ถ ๋ฌธ์์ด ์กฐ์ ํจ์๋ผ๊ณ ์๊ฐํฉ๋๋ค)
์ค์ ๋ก textwidth
(https://github.com/JuliaLang/julia/pull/23667)๋ก ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
IMO,์ด ๋ฌธ์ ๋ ๋๋ฌด ๊ด๋ฒ์ํ์ฌ 1.0 ๋ง์ผ์คํค์ ๊ฐ์ง ๋ชปํฉ๋๋ค. ๊ณง ๊ธฐ๋ฅ์ด ์ค๋จ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ด๋ฅผ ์ํํ๋ ค๋ฉด ์ฌ๋ฌ ๋ช ์ ์์ ์๊ฐ ํ์ํ ์ ์์ผ๋ฉฐ ๊ฒํ ํ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ํ ๋น ํ ์ ์์ต๋๋ค.
๋ํ, FemtoCleaner๊ฐ 1.0 ์ดํ์ ๋ง์ ๊ฒ์ ์๋ ์ ๋ฐ์ดํธ ํ ์์๋ ๋ ๋ค๋ฅธ ๊ณณ์ ๋๋ค.
textwidth์ ๋ํ ์๊ฒฌ :
INFO: Testing Cairo
Test Summary: | Pass Total
Image Surface | 7 7
Test Summary: | Pass Total
Conversions | 4 4
Test Summary: | Pass Total
TexLexer | 1 1
WARNING: both Compat and Cairo export "textwidth"; uses of it in module Main must be qualified
Samples : Error During Test
Got an exception of type LoadError outside of a <strong i="6">@test</strong>
LoadError: UndefVarError: textwidth not defined
Stacktrace:
[1] include_from_node1(::String) at .\loading.jl:576
[2] include(::String) at .\sysimg.jl:14
[3] macro expansion at C:\Users\appveyor\.julia\v0.6\Cairo\test\runtests.jl:86 [inlined]
[4] macro expansion at .\test.jl:860 [inlined]
[5] anonymous at .\<missing>:?
[6] include_from_node1(::String) at .\loading.jl:576
[7] include(::String) at .\sysimg.jl:14
[8] process_options(::Base.JLOptions) at .\client.jl:305
[9] _start() at .\client.jl:371
while loading C:\Users\appveyor\.julia\v0.6\Cairo\samples\sample_pango_text.jl, in expression starting on line 28
์ค๋ฅ ๋ฉ์์ง๋ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ๋งค์ฐ ๋ช
ํํ๊ฒ ๋ณด์
๋๋ค. Cairo
๋ ๊ธฐ๋ณธ ๋ฉ์๋๋ฅผ ํ์ฅํด์ผํฉ๋๋ค.
help?> Base.textwidth
No documentation found.
Binding Base.textwidth does not exist.
julia> versioninfo()
Julia Version 0.6.0
julia> Compat.textwidth
textwidth (generic function with 2 methods)
๋๋ ๋ฉ์์ง (๋ด๊ฐ travis๋ฅผ ํตํด ์ป์)๊ฐ ๊ด์ฐฎ๋ค๋ ๊ฒ์ ์์ฌํ์ง ์์์ง๋ง ์ Compat๋ 0.6์ด ์๋ ๊ฒฝ์ฐ textwidth๋ฅผ ๋ด๋ณด๋ด๋์?
๊ทธ๊ฒ์ด Compat์ ์์ ์ด๊ธฐ ๋๋ฌธ์? ์ด ํ ๋ก ์ ๋ฒ์๋ฅผ ํฌ๊ฒ ๋ฒ์ด ๋ฌ์ผ๋ฏ๋ก ๋ด๋ก ์ด๋ ์ฌ์ ๋ก ๊ณ์ ์งํํ ์ ์์ต๋๋ค.
copy
๋ฅผ shallowcopy
ํ๊ณ deepcopy
๋ฅผ copy
๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ต๊ทผ ์ฌ๋ณธ์ด "์์"์ฌ๋ณธ์ด๊ณ ๋ด๊ฐ ์์ฑํ ํจ์๋ ๋ฐฐ์ด์ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ๋ ๊ฒ์
๋๋ค. copy
๊ฐ "๊น์"๋ณต์ฌ๋ฅผ ์ํํ๊ณ shallowcopy
์ ๊ฐ์ ๊ฒ์ ์์ ๋ณต์ฌ์ ์ฌ์ฉํ๋ฉด ํจ์ฌ ๋ ์ง๊ด์ ์ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๊น? ์ง๊ธ ์๊ณ ์์ต๋๋ค. deepcopy
๋ฅผ ์ฌ์ฉํ ๋ ๋ค๋ฅธ ๋ง์ ์ฌ์ฉ์๊ฐ ๋์ผํ ๋ฌธ์ ์ ๋ถ๋ช ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ "๋ด๊ฐ ์ซ์ดํ๋ ํน์ ํญ๋ชฉ"์ด ์๋ API ์ผ๊ด์ฑ์ ์ํด ์ ์งํ๋๋ก ๋ ธ๋ ฅํฉ์๋ค.
Associative
์ด๋ฆ์ด Julia์ ๋ค๋ฅธ ๋ชจ๋ ์ ํ ์ด๋ฆ๊ณผ ์๋นํ ์ผ์นํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฒซ์งธ, ์ ํ์ ์ผ๋ฐ์ ์ผ๋ก ํ์ฉ์ฌ๊ฐ ์๋๋๋ค. ๋ช
์ฌ๋ Association
์ด๋ฉฐ ์ ์ด๋ ๋ด๊ฐ ์ฐพ์ ์ผ๋ถ Mathematica ๋ฌธ์์์ ์ฌ์ฉ๋ฉ๋๋ค.
AbstractDict
๋ AbstractArray
, AbstractRange
, AbstractSet
๋ฐ AbstractString
์ ๊ฐ์ ๋ค๋ฅธ ์ ํ๊ณผ ํจ์ฌ ๋ ์ผ๊ด์ฑ์ด์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค AbstractRange
ํ๋กํ ํ์
์ฝํฌ๋ฆฌํธ ์ ํ Dict
, Array
, Range
, Set
๋ฐ String
.
์์ธ ์ ํ์ ์ฌ๋ฐฉ์ ์์ต๋๋ค. ์ผ๋ถ๋ FooError
์ด๊ณ ๋ค๋ฅธ ์ ํ์ BarException
. ์ผ๋ถ๋ ๋ด๋ณด๋ด ์ง์ง๋ง ๋๋ถ๋ถ์ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ผ๊ด์ฑ์ ์ํด ํต๊ณผ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด FooError
๋๋ BarException
์ ํธํ๋ ๊ฒ์ ๋ฌด์์
๋๊น? ์์ถ ์ฌ๋ถ?
์ ์๊ฒ BarException
์ ์ด๋๊ฐ์ ๋ชจ๊ธ / ์ก๊ธฐ ํจํด์ ํฌํจํฉ๋๋ค.
๋๋ ๋ง์ ๊ฒ์ ์ ํธํ๊ณ ๊ธฐ๋ฅ ์ธ๊ณ์ ๋ค๋ฅธ ์ฌ๋๋ค๋ ์ ์ด ํ๋ฆ์ด ๋ ์ง์ ์ ์ด๊ณ ์์ธก ๊ฐ๋ฅํ Some
/ None
ํจํด (*)์ ์ฌ์ฉํฉ๋๋ค.
๋ฐ๋ผ์ FooError
+1
(*) Some
/ Void
ex Optional
in Julia # 23642.
๊ธฐ๋ฅ์ด ์ ์ง ๋ ์ํ์์ ์ด๋ฌํ ํญ๋ชฉ์ด ์ฌ์ ํ ํ ์ด๋ธ์ ์์ต๋๊น? ํนํ ์ ํ์ ๋ ํค์๋ ์ธ์๋ฅผ ๋ค๋ฃจ๊ณ ์ถ์ง๋ง ์ฌ๋ฌ ์ ํ์ ์ธ์๊ฐ์๋ ํจ์ ๋ชฉ๋ก (๋์ ํค์๋ ์ธ์๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ๋ช ํํ ๊ฒฝ์ฐ)์ ๊ฝค ๊น๋๋ค.
์ด๊ฒ์ ๋ด์ฃผ์ธ์! ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ํด๊ฒฐํ ๊ธฐํ๊ฐ ์์์ต๋๋ค.
BTW, ํน์ฑ ์ด๋ฆ ์ง์ ์ ๋ถ์ผ์น๊ฐ ์์์ ํ์ธ ํ์ต๋๋ค : iteratorsize
, iteratoreltype
,ํ์ง๋ง IndexStyle
, TypeRangeStep
, TypeArithmetic
๋ฐ TypeOrder
. CamelCase ๋ณํ์ด ๋ ๋ง๊ณ ์ต์ ์ธ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฏ๋ก ๋ชจ๋ ๊ณณ์์ ํด๋น ๊ท์น์ ์ฑํํด์ผํ ๊น์?
๊ทธ๊ฒ๋ค์ ํ์คํ ์ผ๊ด์ฑ์ด ์์ด์ผํฉ๋๋ค. ํ๋ณดํ๊ณ ์ถ์ต๋๊น?
๋๋ ์ด๊ฒ์ด https://github.com/JuliaLang/julia/pull/25356์ ์ผ๋ถ๋ก ์์ ๋์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค
ํธ์ง : https://github.com/JuliaLang/julia/issues/25440 ์ฐธ์กฐ
์ด๊ฒ์ ๋๋ถ๋ถ ์ํ๋๊ฑฐ๋ 1.x ๋ฆด๋ฆฌ์ค์์ ์ํ ๋ ์ ์์ต๋๋ค. ์ฒดํฌ ๋ฐ์ค๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์์ง๋ง, ๋ถ๋ฅ ํธ์ถ์์ ์ฒดํฌ ๋ฐ์ค๋ฅผ ์ดํด ๋ดค๊ณ # 25395์ ๋ฐ์ค ๊ฐ์ฌ๋ฅผ ์ ์ธํ ๋ชจ๋ ๊ฒ์ด ์๋ฃ๋์์ต๋๋ค.
๋ค์์ ๋ฐ์ค์ ํฌํจํ๊ณ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ๋ฌธ์์ด ๋งคํฌ๋ก๊ฐ ์๋ Base์์ ๋ด ๋ณด๋ธ ๋ชจ๋ ๊ธฐํธ์ ๋ํ ๋ถ์์ ๋๋ค. ์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผ ํ ์ค์ํ ์ ์์ด ์ด๋ฆ์ด ๋ด๋ณด๋ด๊ธฐ ๋ ์ด๋ฆ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ๋๋ค์๊ฒ ์ ๊ฒฉ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ์์ถ๋์ง ์์ ์ด๋ฆ์ ํฌํจ๋์ง ์์ต๋๋ค.
์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ๊ตฌ๋ถํ์ต๋๋ค. ๊ทธ๊ฒ์ด ์ฑ๊ฐ์ ๊ฒ๋ณด๋ค ๋ ์ ์ฉํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
ํด๋น ๊ธฐ๋ฅ์ด์๋ ๋ค์ ๋งคํฌ๋ก๊ฐ ์์ต๋๋ค.
@code_llvm
, code_llvm
@code_lowered
, code_lowered
@code_native
, code_native
@code_typed
, code_typed
@code_warntype
, code_warntype
๋งคํฌ๋ก์ ์ ์ฉ๋๋ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํจ์์๋ ์ ์ฌํ๊ฒ ์ ์ฉ๋์ด์ผํฉ๋๋ค.
module_name
-> nameof
(# 25622)module_parent
-> parentmodule
(# 25629, ์ด์ ์ด๋ฆ โโ๋ณ๊ฒฝ ์๋๋ # 25436 ์ฐธ์กฐ)method_exists
-> hasmethod
(# 25615)object_id
-> objectid
(# 25615)pointer_from_objref
pointer_from_objref
๋ ์ข ๋ ์ค๋ช
์ ์ธ ์ด๋ฆ์ผ๋ก ํ ์ ์์ต๋๋ค. address
?
๋ฐ์ค์ด ํฌํจ ๋ ์ ํ ๋ณ์นญ์ C_NULL
, Cintmax_t
, Cptrdiff_t
, Csize_t
, Cssize_t
, Cuintmax_t
๋ฐ Cwchar_t
_t
๋๋๋ ์ด๋ฆ์ ํด๋น C ์ ํ๊ณผ ์ผ์นํ๋๋ก ์ด๋ฆ์ด ์ง์ ๋๋ฏ๋ก ๊ทธ๋๋ก ์์ด์ผํฉ๋๋ค.
C_NULL
๋ C์์ ๋ฏธ๋ฌ๋ง๋์ง ์๋ ๋ฐ์ค์ ํฌํจํ๋ ์ ์ผํ C ๋ณ์นญ์
๋๋ค (C์์๋ NULL
์ด๋ฏ๋ก). ์ด๊ฒ์ CNULL
๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
C_NULL
count_ones
count_zeros
trailing_ones
trailing_zeros
leading_ones
leading_zeros
์ด๋ฆ ๋ณ๊ฒฝ์ ๋ํ ์ค๋ช ์ # 23531์ ์ฐธ์กฐํ์ญ์์ค. ๋๋ ์ด๊ฒ๋ค์ ๋ํ ๋ฐ์ค๊ณผ ๊ทธ PR์์ ์ ์ ๋ ๋์ฒด๋ฌผ ์ค ์ผ๋ถ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋งค์ฐ ์ ํธํฉ๋๋ค. ์ฌ๊ณ ํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
unsafe_copyto!
unsafe_load
unsafe_pointer_to_objref
unsafe_read
unsafe_store!
unsafe_string
unsafe_trunc
unsafe_wrap
unsafe_write
์ด ์ํ๋ก ์ ์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐ์ค์ ์ถ์ ํจ์ ๊ทธ๋ค์ ์ํ์ฑ์ ๋์ฑ ๊ฐ์กฐํฉ๋๋ค.
broadcast_getindex
broadcast_setindex!
to_indices
๋ถ๋ช
ํ broadcast_getindex
๋ฐ broadcast_setindex!
๊ฐ ์กด์ฌํฉ๋๋ค. ๋๋ ๊ทธ๋ค์ดํ๋ ์ผ์ ์ดํดํ์ง ๋ชปํ๋ค. ๋ ์ค๋ช
์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์๊น์?
ํฅ๋ฏธ๋กญ๊ฒ๋ to_indices
, Base.to_index
์ ๋จ์ผ ์ธ๋ฑ์ค ๋ฒ์ ์ ๋ด๋ณด๋ด์ง์ง ์์ต๋๋ค.
catch_backtrace
catch_stacktrace
-> stacktrace(catch_backtrace())
(# 25615)์๋ง๋ ์ด๋ค์ ๊ฐ๊ฐ backtrace
๋ฐ stacktrace
์ ํด๋นํ๋ catch
๋ธ๋ก ์ผ ๊ฒ์
๋๋ค.
current_task
task_local_storage
disable_sigint
reenable_sigint
process_exited
process_running
redirect_stderr
redirect_stdin
redirect_stdout
nb_available
-> bytesavailable
(# 25634)๋ ์ผ๋ฐ์ ์ธ IO
-> IO
๋ฆฌ๋๋ ์
ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ชจ๋ ํญ๋ชฉ์ ๊ฒฐํฉ ํ ์ ์์ต๋๋ค (์ : redirect(STDOUT, io)
). ๊ทธ๋ฌ๋ฉด ๋ฐ์ค๊ณผ ๋ด๋ณด๋ด๊ธฐ๊ฐ ๋ชจ๋ ์ ๊ฑฐ๋ฉ๋๋ค.
promote_rule
promote_shape
promote_type
promote_rule
์ ๋ํ ๊ด๋ จ ํ ๋ก ์ # 23999๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
print_with_color
-> printstyled
(# 25522 ์ฐธ์กฐ)print_shortest
(# 25745 ์ฐธ์กฐ)escape_string
(# 25620 ์ฐธ์กฐ)unescape_string
escape_string
๋ฐ unescape_string
๋ ์คํธ๋ฆผ์ผ๋ก ์ธ์ํ๊ฑฐ๋ ๋ฌธ์์ด์ ๋ฐํ ํ ์ ์๋ค๋ ์ ์์ ์ฝ๊ฐ ์ด์ํฉ๋๋ค. ์ด๋ / ์ด๋ฆ ๋ณ๊ฒฝ ์ ์์ # 25620์ ์ฐธ์กฐํ์ธ์.
include_dependency
include_string
include_dependency
Base ์ธ๋ถ์์๋ ์ฌ์ฉ๋ฉ๋๊น? ์ผ๋ฐ์ ์ธ ์๋๋ฆฌ์ค์์ include
๋์ ์ด๊ฒ์ ์ํ๋ ์ํฉ์ ์๊ฐํ ์ ์์ต๋๋ค.
include_string
์ด๊ฒ์ ๊ณต์์ ์ผ๋ก ์น์ธ ๋ eval(parse())
๋ฒ์ ์ด ์๋๋๊น?
gc_enable
-> GC.enable
(# 25616)get_zero_subnormals
set_zero_subnormals
time_ns
get_zero_subnormals
๋ฐ set_zero_subnormals
๋ ๋ ์ค๋ช
์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ด ๋ณด๋ด์ผํฉ๋๊น?
method_exists => methodexists
๋ฐ object_id => objectid
๋ํ +1. catch_stacktrace
์กฐ์ฐจ ์กด์ฌํ๋ ๊ฒ๋ ์ด๋ฆฌ์์ ์ผ์
๋๋ค. stacktrace(catch_backtrace())
์ ์๋ก ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ ์ ์์ต๋๋ค.
C_NULL
๋ฎ์ C*
์ด๋ฆ์ ๋ฐ์ค์ด ์๋ค๋ ์ฃผ์ฅ๋ ์ฝ๋๋ค.
๋ค๋ฅธ C ์ด๋ฆ์ ์ ํ์ด๊ณ C_NULL
๋ ์์์
๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์ข์์ง ์๊ฐํ๊ณ ๋ช
๋ช
์ง์นจ์ ๋ฐ๋ฆ
๋๋ค.
๋ช ๋ช ์ง์นจ์ ๋ฐ๋ฆ ๋๋ค.
์ด๋ป๊ฒ?
์์๋ ์ข
์ข
๋ชจ๋ ๋ฐ์ค์ด์๋ ๋๋ฌธ์์
๋๋ค. C_NULL
๋ค์์ต๋๋ค. @ iamed2๊ฐ ๋งํ๋ฏ์ด ์ ํ์ด ์๋๋ผ ๊ฐ์ด๋ฏ๋ก Cfoo
๋ช
๋ช
๊ท์น์ด ๋ฐ๋์ ์ ์ฉ๋๋ ๊ฒ์ ์๋๋๋ค.
๋๋ ์ค์๋ก https://github.com/JuliaLang/julia/blob/master/doc/src/manual/variables.md#stylistic -conventions๊ฐ ์์๋ฅผ ์ฐธ์กฐํ๋ค๊ณ ์๊ฐํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ์๋ง ๊ทธ๋ด ๊ฒ์ ๋๋ค.
๋ฒกํฐ๊ฐ Julia ๋ฐฐ์ด์ด ์๋ ์ผ๋ฐ์ ์ธ ํ๋ฒ ๋ฅดํธ ๊ณต๊ฐ์ ๋ํด ์ผ๊ด๋๊ณ ์ํ์ ์ผ๋ก ๊ฑด์ ํ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํฉ๋๋ค. vecdot
, vecnorm
๋ฑ๊ณผ ๊ฐ์ ํจ์ ์ด๋ฆ์ https : // github์ ์ค๋ช
๋๋๋ก inner
๋ฐ norm
์ ์ผ๋ฐ ๊ฐ๋
์ผ๋ก ๋์ฒด ๋ ์ ์์ต๋๋ค . com / JuliaLang / julia / issues / 25565.
๋ด๊ฐ ๋ช ๋ฒ ๋งํ๋ฏ์ด, ์ด๊ฒ์ ์ฌ๋์ด ๋ฐ๊พธ๊ณ ์ถ์ ๊ฒ์ ๋ํ ํฌ๊ด์ ์ธ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
์ด ์ฐ์ฐ ์๋ 1.0์ ๋จ์์๋ ์ ์ผํ ํญ๋ชฉ์ # 25501๊ณผ # 25717์ ๋๋ค.
(get|set)_zero_subnormals
๋ญ๊ฐ๋ฅผํ๊ณ ์ถ์ง๋ง ๊ฐ์ฅ ์ข์ ๋จ๊ธฐ ํด๊ฒฐ์ฑ
์ ๊ทธ๋ฅ ๋ด ๋ณด๋ด์ง ์๋ ๊ฒ์
๋๋ค.
์๋ง๋ ๊ฒํ ํด์ผ ํ ๊ฒ์ map
๋ฐ collect
์ ๊ฐ์ ์ปฌ๋ ์
์์
์ ์ปจํ
์คํธ์์ ์ซ์๊ฐ ์ฒ๋ฆฌ๋๋ ๋ฐฉ์์
๋๋ค. ์ ์๋ ์ค์นผ๋ผ๋ฅผ ๋ฐํํ์ง๋ง ํ์๋ 0D ๋ฐฐ์ด์ ๋ฐํํ๋ค๋ ์ง์ ์ด์์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฐ์ค ๊ฐ์ฌ
๋ค์์ ๋ฐ์ค์ ํฌํจํ๊ณ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ๋ฌธ์์ด ๋งคํฌ๋ก๊ฐ ์๋ Base์์ ๋ด ๋ณด๋ธ ๋ชจ๋ ๊ธฐํธ์ ๋ํ ๋ถ์์ ๋๋ค. ์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผ ํ ์ค์ํ ์ ์์ด ์ด๋ฆ์ด ๋ด๋ณด๋ด๊ธฐ ๋ ์ด๋ฆ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ฌ๋๋ค์๊ฒ ์ ๊ฒฉ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ์์ถ๋์ง ์์ ์ด๋ฆ์ ํฌํจ๋์ง ์์ต๋๋ค.
์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ๊ตฌ๋ถํ์ต๋๋ค. ๊ทธ๊ฒ์ด ์ฑ๊ฐ์ ๊ฒ๋ณด๋ค ๋ ์ ์ฉํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ฐ์ฌ
ํด๋น ๊ธฐ๋ฅ์ด์๋ ๋ค์ ๋งคํฌ๋ก๊ฐ ์์ต๋๋ค.
@code_llvm
,code_llvm
@code_lowered
,code_lowered
@code_native
,code_native
@code_typed
,code_typed
@code_warntype
,code_warntype
๋งคํฌ๋ก์ ์ ์ฉ๋๋ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํจ์์๋ ์ ์ฌํ๊ฒ ์ ์ฉ๋์ด์ผํฉ๋๋ค.
module_name
->nameof
(# 25622)module_parent
->parentmodule
(# 25629, ์ด์ ์ด๋ฆ โโ๋ณ๊ฒฝ ์๋๋ # 25436 ์ฐธ์กฐ)method_exists
->hasmethod
(# 25615)object_id
->objectid
(# 25615)pointer_from_objref
pointer_from_objref
๋ ์ข ๋ ์ค๋ช ์ ์ธ ์ด๋ฆ์ผ๋ก ํ ์ ์์ต๋๋ค.address
?C interop์ ๋ณ์นญ
๋ฐ์ค์ด ํฌํจ ๋ ์ ํ ๋ณ์นญ์
C_NULL
,Cintmax_t
,Cptrdiff_t
,Csize_t
,Cssize_t
,Cuintmax_t
๋ฐCwchar_t
_t
๋๋๋ ์ด๋ฆ์ ํด๋น C ์ ํ๊ณผ ์ผ์นํ๋๋ก ์ด๋ฆ์ด ์ง์ ๋๋ฏ๋ก ๊ทธ๋๋ก ์์ด์ผํฉ๋๋ค.C_NULL
๋ C์์ ๋ฏธ๋ฌ๋ง๋์ง ์๋ ๋ฐ์ค์ ํฌํจํ๋ ์ ์ผํ C ๋ณ์นญ์ ๋๋ค (C์์๋NULL
์ด๋ฏ๋ก). ์ด๊ฒ์CNULL
๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค.C_NULL
๋นํธ ์นด์ดํ
count_ones
count_zeros
trailing_ones
trailing_zeros
leading_ones
leading_zeros
์ด๋ฆ ๋ณ๊ฒฝ์ ๋ํ ์ค๋ช ์ # 23531์ ์ฐธ์กฐํ์ญ์์ค. ๋๋ ์ด๊ฒ๋ค์ ๋ํ ๋ฐ์ค๊ณผ ๊ทธ PR์์ ์ ์ ๋ ๋์ฒด๋ฌผ ์ค ์ผ๋ถ๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋งค์ฐ ์ ํธํฉ๋๋ค. ์ฌ๊ณ ํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์์ ํ์ง ์์ ์์
unsafe_copyto!
unsafe_load
unsafe_pointer_to_objref
unsafe_read
unsafe_store!
unsafe_string
unsafe_trunc
unsafe_wrap
unsafe_write
์ด ์ํ๋ก ์ ์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐ์ค์ ์ถ์ ํจ์ ๊ทธ๋ค์ ์ํ์ฑ์ ๋์ฑ ๊ฐ์กฐํฉ๋๋ค.
์ธ๋ฑ์ฑ
broadcast_getindex
broadcast_setindex!
to_indices
๋ถ๋ช ํ
broadcast_getindex
๋ฐbroadcast_setindex!
๊ฐ ์กด์ฌํฉ๋๋ค. ๋๋ ๊ทธ๋ค์ดํ๋ ์ผ์ ์ดํดํ์ง ๋ชปํ๋ค. ๋ ์ค๋ช ์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์๊น์?ํฅ๋ฏธ๋กญ๊ฒ๋
to_indices
,Base.to_index
์ ๋จ์ผ ์ธ๋ฑ์ค ๋ฒ์ ์ ๋ด๋ณด๋ด์ง์ง ์์ต๋๋ค.ํ์
catch_backtrace
catch_stacktrace
->stacktrace(catch_backtrace())
(# 25615)์๋ง๋ ์ด๋ค์ ๊ฐ๊ฐ
backtrace
๋ฐstacktrace
์ ํด๋นํ๋catch
๋ธ๋ก ์ผ ๊ฒ์ ๋๋ค.์์ , ํ๋ก์ธ์ค ๋ฐ ์ ํธ
current_task
task_local_storage
disable_sigint
reenable_sigint
process_exited
process_running
์คํธ๋ฆผ
redirect_stderr
redirect_stdin
redirect_stdout
nb_available
->bytesavailable
(# 25634)๋ ์ผ๋ฐ์ ์ธ
IO
->IO
๋ฆฌ๋๋ ์ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๋ชจ๋ ํญ๋ชฉ์ ๊ฒฐํฉ ํ ์ ์์ต๋๋ค (์ :redirect(STDOUT, io)
). ๊ทธ๋ฌ๋ฉด ๋ฐ์ค๊ณผ ๋ด๋ณด๋ด๊ธฐ๊ฐ ๋ชจ๋ ์ ๊ฑฐ๋ฉ๋๋ค.ํ๋ก๋ชจ์
promote_rule
promote_shape
promote_type
promote_rule
์ ๋ํ ๊ด๋ จ ํ ๋ก ์ # 23999๋ฅผ ์ฐธ์กฐํ์ญ์์ค.์ธ์
print_with_color
->printstyled
(# 25522 ์ฐธ์กฐ)print_shortest
(# 25745 ์ฐธ์กฐ)escape_string
(# 25620 ์ฐธ์กฐ)unescape_string
escape_string
๋ฐunescape_string
๋ ์คํธ๋ฆผ์ผ๋ก ์ธ์ํ๊ฑฐ๋ ๋ฌธ์์ด์ ๋ฐํ ํ ์ ์๋ค๋ ์ ์์ ์ฝ๊ฐ ์ด์ํฉ๋๋ค. ์ด๋ / ์ด๋ฆ ๋ณ๊ฒฝ ์ ์์ # 25620์ ์ฐธ์กฐํ์ธ์.์ฝ๋ ๋ก๋ฉ
include_dependency
include_string
include_dependency
Base ์ธ๋ถ์์๋ ์ฌ์ฉ๋ฉ๋๊น? ์ผ๋ฐ์ ์ธ ์๋๋ฆฌ์ค์์include
๋์ ์ด๊ฒ์ ์ํ๋ ์ํฉ์ ์๊ฐํ ์ ์์ต๋๋ค.include_string
์ด๊ฒ์ ๊ณต์์ ์ผ๋ก ์น์ธ ๋eval(parse())
๋ฒ์ ์ด ์๋๋๊น?๋ด๊ฐ ๋ถ๋ฅํ์ง ์์ ๊ฒ
gc_enable
->GC.enable
(# 25616)get_zero_subnormals
set_zero_subnormals
time_ns
get_zero_subnormals
๋ฐset_zero_subnormals
๋ ๋ ์ค๋ช ์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ด ๋ณด๋ด์ผํฉ๋๊น?