Julia์ ํต์ฌ ์ ์ ์ค ํ ๋ช ์ธ @JeffBezanson ์ ๋ฌธ์ ๊ฐ ๋ง์ ๊ฐ๋ฐ์๊ฐ ๋์์ต๋๋ค. ๊ทธ๋ ์ด์์ ์ผ๋ก๋ 2015๋ 1์๊น์ง MIT๋ฅผ ์กธ์ ํด์ผ ํฉ๋๋ค. ์ข ์์ฑ:
์ด๊ฒ์ ํ์ด ๋ถ๋ฌ์ง์ง ์๊ณ Julia ํ๋ก์ ํธ์ ์ฅ๊ธฐ์ ์ธ ์คํ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํ ์ฐ์ ์์ ๋ฌธ์ ์ ๋๋ค.
์ฐธ์กฐ: @alanedelman , @jiahao , @StefanKarpinski , @ViralBShah , @samanamarasinghe , @gjs
ํธ์ง(VS): ์ด ๋ฌธ์ ๋ ๋ค์ ๋
ผ๋ฌธ์ผ๋ก ๋ง๊ฐ๋์์ต๋๋ค. ๋ง์ ๋ถ๋ค์ด ๊ถ๊ธํดํ์ค ๊ฒ ๊ฐ์์ ์ฌ๊ธฐ์ ์ฌ๋ฆฝ๋๋ค.
https://github.com/JeffBezanson/phdthesis/blob/master/main.pdf
์ด ๋ฏธํด๊ฒฐ ๋ฌธ์ ์ ๊ด์ฌ์ด ์๋ cc @fperez
์ฒจ๋ถ๋ ์ง์ ์ ๋ณด์
๋๋ค.
์ ์ฐจ์์ ๋ฌธ์ ๋ก ์ด๊ฒ์ ๋ซ์ผ๋ ค๋ฉด ๋ณ๋์ ์ ์ฅ์์์ ์์ ํด์ผ ํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ ์ฝ๊ฒ ๊ธฐ์ฌํ ์ ์๋๋ก ๋ ผ๋ฌธ์ Base์ ํฌํจํด์ผ ํฉ๋๋ค.
๋ํ ๋ง์ง๋ง ์์ ์ ์์๋ ์คํด์ ์์ง๊ฐ ์์ต๋๋ค. ์ค์ ๋ก ํ๋ก์ธ์ค ์ ๋ฐ์ ๊ฑธ์ณ ์์ฃผ ๋ฐ๋ณต๋ฉ๋๋ค.
Base์ ํฌํจํ๊ฑฐ๋ ์ ์ด๋ julia/doc/thesis
์ ํฌํจํ๋ฉด +1์
๋๋ค. ๋๋ ํฅํ ์๊ตฌ ์ฌํญ์ ๊ณ ๋ คํ์ฌ theses
์ ์์ต๋๋ค.
(์ ํ, ๋ ผ๋ฌธ ๋ถ๊ธฐ๋ฅผ ์ด์ด์ฃผ์ธ์.)
๋ํ ๋ง์ง๋ง ์์ ์ ์์๋ ์คํด์ ์์ง๊ฐ ์์ต๋๋ค. ์ค์ ๋ก ํ๋ก์ธ์ค ์ ๋ฐ์ ๊ฑธ์ณ ์์ฃผ ๋ฐ๋ณต๋ฉ๋๋ค.
*๋ํ ์ด๋ฏธ ์ฌ๋ฐํ์ต๋๋ค.
์ ๋ _Close issue_ ํ์ฌ์ ์ฐธ์ํ๊ธฐ๋ฅผ ๊ณ ๋ํ๊ณ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ๋ก์ปฌ์์ ์ฌํํ ์ ์์ต๋๋ค. MIT ์ ์ฉ์ธ๊ฐ์?
Julia์ ํต์ฌ ์ ์ ์ค ํ ๋ช
์ธ @JeffBezanson ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฐ๋ฐ์ ํ์๊ฐ ๋์์ต๋๋ค.
์ด๊ฒ์ PHD ๋ ผ๋ฌธ์ github ๋ฒ์ ์ ๋๊น? Jeff๋ ์ ์์๋ก PR์ ์์ํด์ผ ํ๊ณ ์์ํ์์ ํฉ๋ณ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค...
+์ด๊ฒ์ ๋น ๋ฅธ ํด๊ฒฐ์ ์ํ ์ ๋ณด!
๋ช ๋ฌ ์ ์ IPython repo์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ผ๋ฉฐ 32์ผ ์ ์ ํด๊ฒฐ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์ปคํผ, ์ฑ๊ฐ์ ์๋ฅ ์์
๋ฐ ์ฐฉ์๊ธฐ๋ก ์ธํ ๋ง์ง๋ง ์๊ฐ์ ๊ณํ ๋ณ๊ฒฝ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ํ์ ํฉ๋๋ค.
ํ์ด์ ๋น๋๋ค !
์ ๋ฐ์ดํธ๋จ: Jeff๋ ๋ ผ๋ฌธ ์์ํ๋ฅผ ๋ง๋ ๋๋ต์ ์ธ ๊ฐ์๋ฅผ ์ ๊ณตํ์ต๋๋ค.
์งํ๋๊ณ ์๋ค๋ ์์์ ๋ฃ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค!
๊ทธ๋ฌ๋ git log --date=short --all --since=22.days.ago --author="Jeff Bezanson"
๋ ์ฌ์ ํ ๊ทธ๊ฐ ๋
ผ๋ฌธ์ ์์ฑํ ์๊ฐ์ด ์๋์ง ๊ถ๊ธํ๊ฒ ๋ง๋ญ๋๋ค. ๊ทธ๊ฒ ์๋๋ฉด ๊ทธ๋ ์ํผํ์ด๋ก์
๋๋ค. ์ฌ์ค, ๊ธ์ ์
๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ๊ทธ๊ฐ ์ํผํ์ด๋ก๋ผ๋ ๊ฒ์ ์๊ณ ์์ผ๋ฏ๋ก ์ ๊ฒฝ์ฐ์ง ๋ง์ญ์์ค.
juliatypes.jl๊ณผ ๊ด๋ จ๋ ์ปค๋ฐ์ ๋ ผ๋ฌธ ์์ ๊ณผ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์๋ Julia์ ์ ํ ์์คํ ์ ์ค๋ช ํ๋ ค๋ ์๋๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
์ ํ ์์คํ ์์ ์ ์ด๋ฏธ ์ผ๋ถ ์ ๊ฒฝ์ ๊ฑด๋๋ฆฌ๋ ๊ฒ ๊ฐ์ต๋๋ค: https://twitter.com/plt_hulk/status/535045242920378369
๋ด๊ฐ ํ๋ฆด ์๋ ์์ง๋ง Jeff์ ์์ ์ ๋ํ ์ง์ ์ ์ธ ์๋ต์ธ์ง ์์ฌ์ค๋ฝ์ต๋๋ค. ์ด์จ๋ ์ฌ๋ฏธ์๋ ํธ์.
@jiahao , ์ ๋๊ธ์ ๋๋ถ๋ถ ํ๋ฅผ ๋ด๋๋ฅผ ์ ๋์์ต๋๋ค --- ์ ๋ ๋ฐ๋ก ๊ทธ ๋ถ๋ถ์ด ๊ถ๊ธํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ ํ๋ ์ ํ ์ด์ ์ ์ํด ๋ฌด์ธ๊ฐ๋ฅผ ๋ค๋ฌ์ ๋ ์ปค๋ฐ์ ๋ง์ด ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
@timholy ์ ๋จธ๊ฐ ์ธ๊ธ๋์์ต๋๋ค. :)
์ฐ๋ฆฌ ์ง์ญ ์ด๋ก ํ๋ ฅ์ ์ธ @jeanqasaur ๊ฐ ํธ์ํฐ์ ๊ฒ์ํ ์๋ฆ๋ค์ด Magritte ๊ฒฝ์ ๋ฅผ ์ธ๊ธํ์ง ์๋ ๊ฒ์ ํ๋งํ ์ผ์ด ๋ ๊ฒ์ ๋๋ค.
"์ ํ์ ๋ฐฐ์ "์๋ ๋ฉ์ง ๋ฐ์ง๊ฐ ์์ต๋๋ค. ๊ทธ๋ ์ฃ ?
์ ๋ง ์ฌ๋ฏธ์๋ค์.
์ฌ๋ํด!
๋์ ์์ฒญ: Jeff๋ ๋ค์ค ๋์คํจ์น(๋ฐ ์๋ง๋ ๋จ๊ณ์ ๊ธฐ๋ฅ)๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ข์ ์๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์๋ ์ธ์ด์์๋ ํจ์ฌ ๋ ์ด๋ ต๊ฑฐ๋ ๋๋ฆด ๊ฒ์ ๋๋ค.
๋, show
?
(๊ทธ๋ฆฌ๊ณ ์๋ง๋ ๋จ๊ณ์ ๊ธฐ๋ฅ)
subarray.jl
๋ฐ subarray2.jl
๋ ๊ฝค ํ๋ฅญํ๊ฒ ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. ๋์์ธ ๋ฌธ์๋ http://docs.julialang.org/en/latest/devdocs/subarrays/ ์ ์์ต๋๋ค.
๋๋ Distributions ํจํค์ง๊ฐ ์ ๋ง๋ก ๋ค์ค ๋์คํจ์น๋ฅผ โโ์ ์ฉํ๊ฒ ๋ณด์ด๊ฒ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. rand(Gamma(1, 1), 5, 5)
๋ rand(Normal(0, 1), 3)
์ ๊ฐ์ ๊ฒ์ด ์์ผ๋ฉด ๋ค์ค ๋์คํจ์น๋ก ์ธํด ์ฑ๋ฅ ๋น์ฉ ์์ด ํํ๋ ฅ์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์ค์ ๋ก ๊ณผ์ํ๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ์ด ๊ฐ์ฅ ์ข์ ์๋ผ๋ ๊ฒ์ ์์ง ๋ชปํฉ๋๋ค.
๋จ์ผ ๋์คํจ์น. ๋น์ ์ด ๊ฐ์ง๊ณ ์๋ Gamma(1,1).rand(5,5)
์ ์ด๋ป๊ฒ ๋ค๋ฆ
๋๊น?
Python์ด๋ Java์ ๊ฐ์ ๋ณด๋ค ์ ํต์ ์ธ OO ์ธ์ด๋ก ํ ๊ฒ์ธ๊ฐ?
2014๋
12์ 19์ผ ๊ธ์์ผ ์คํ 1์ 39๋ถ, John Myles White ์๋ฆผ @github.com
์ผ๋ค:
๋๋ Distributions ํจํค์ง๊ฐ ์ค์ ๋ก ์ฌ๋ฌ ๋์คํจ์น๋ฅผ โโ๋ณด์ด๊ฒ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ์ฉํ. rand(Gamma(1, 1), 5, 5) ๋ rand(Normal(0, 1),
3) ๋ค์์ผ๋ก ์ธํด ์ฑ๋ฅ ๋น์ฉ ์์ด ํํ๋ ฅ์ด ํฌ๊ฒ ํฅ์๋ฉ๋๋ค.
๋ค์ค ํ๊ฒฌ.โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/JuliaLang/julia/issues/8839#issuecomment -67678367.
ํ์ธ. kl(Normal(0, 1), Normal(0, 1))
vs kl(Normal(0, 1), Gamma(1, 1))
$ ์ ๊ฐ์ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ์ฌ KL-divergence๋ฅผ ๊ณ์ฐํ๋ ์์ ๋ก ๋์ฒดํ์ญ์์ค.
๋๋ ๋ํ ์ถ๊ฐํ์ด์ผ ํ๋ค. #8235์ ๋ด ์ด๊ธฐ ๊ฒ์๋ฌผ์์ ์ธ์์ด _์๋_ ์ค๋น๋ ํจ์์ ๊ฐ์ ๊ฒ์ด๋ผ๋ ์ ์ฌ์ ์ผ๋ก ์ ์ฉํ ํต๊ณ๊ฐ ์์์ต๋๋ค. ํ ์ดํฌ ํ ๋ฉ์์ง: ์ฐจ์ 8์ ํตํด ๋ชจ๋ ๋ฉ์๋๋ฅผ ์์ฑํ๋ฉด 5000๊ฐ ์ด์์ ๊ฐ๋ณ ๋ฉ์๋๊ฐ ์์ฑ๋๊ณ 4๋ถ ์ด์์ ๊ตฌ๋ฌธ ๋ถ์ ๋ฐ ๊ฐ์ ์๊ฐ์ด ํ์ํฉ๋๋ค(์ฆ, julia๋ฅผ ์ปดํ์ผํ๋ ๋์ 4๋ถ ์ง์ฐ). ๊ทธ์ ๋นํด stagedfunction ๊ตฌํ์ ์์๊ฐ์ ๋ก๋๋๋ฉฐ ๋ฌผ๋ก 8์ฐจ์์ ๋์ด์ค ์๋ ์์ต๋๋ค.
๋จ์ผ ๋์คํจ์น์ ๋น๊ตํ์ฌ ์ฌ์ ํ ๋ค๋ฅธ OO ์ธ์ด๊ฐ ์ค๋ช ํ๋ ๊ธฐ๋ฅ ๋ ๋ฉ์๋์ ํตํฉ์ ๋ณด์ฌ์ค๋๋ค. ํ์ด์ฌ์ sorted(a) ๋ a.sort()์ ๋์กฐํ ์ ์์ต๋๋ค. "์ ํต์ ์ธ" ๊ฐ์ฒด์งํฅ ์ธ์ด์ ๋น๊ตํ ๋, ๊ทธ๊ฒ์ ํจ์๊ฐ ํด๋์ค์ "์ฐ๊ด"๋๋ค๋ ์๋ฏธ๋ฅผ ๊ทน์ ์ผ๋ก ๋ฐ๊ฟ๋๋ค.
์ธ์คํด์ค ๋๋ ์ ํ์ ๋ํด ๋์คํจ์นํ ์ ์์ผ๋ฏ๋ก ์ ์ ๋ ์ธ์คํด์ค ๋ณ์์ ํ์์ฑ์ ๋์ฒดํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ์ต๊ทผ IRC ๋ํ์์ ์์ด๋์ด๋ฅผ ๋ ์ป์ ์ ์์ ๊ฒ์ ๋๋ค.
fmap
์ ๊ตฌํ์ด ์์ต๋๋ค. ์ด๊ฒ์ ์ฌ๋ฌ ๋ฐฐ์ด์ ์ํํ๊ณ
๊ฐ ์์ ์งํฉ์ ๊ธฐ๋ฅ์ ์ ์ฉํฉ๋๋ค. ์ด ๊ตฌํ์ ์ค์ ๋ก
๋ฐฐ์ด ์๊ฐ ์์์ ์ผ ์ ์์ผ๋ฏ๋ก ๋งค์ฐ ๋๋ฆฝ๋๋ค. ์ด๋ฅผ ์ ์ฉํ๊ฒ ์ฌ์ฉํ๋ ค๋ฉด
๋ค์ํ ์์ ๋ํด ์ด ์ ๋ฌธํ๋ฅผ ์๋์ผ๋ก ๋ง๋ค์์ต๋๋ค.
์ธ์ yss
. ๋๋ ํญ์ ์ด๊ฒ์ ์ํด ๋จ๊ณ์ ํจ์๋ฅผ ์์ฑํ๊ณ ์ถ์์ต๋๋ค.
ํ์ง๋ง ์์ง ํ์ง ์์์ต๋๋ค.
์ค๋น๋ ํจ์๋ ํนํ map
ํธ์ถ์ ํ๊ฐํด์ผ ํฉ๋๋ค.
f
์ ๋ํ ์ธ์๋ฅผ ์์ฑํฉ๋๋ค.
-์๋ฆญ
function fmap{T,D}(f::Function, xs::Array{T,D}, yss::Array...;
R::Type=eltype(f))
[<strong i="18">@assert</strong> size(ys) == size(xs) for ys in yss]
rs = similar(xs, R)
<strong i="19">@simd</strong> for i in 1:length(xs)
<strong i="20">@inbounds</strong> rs[i] = f(xs[i], map(ys->ys[i], yss)...)
end
rs::Array{R,D}
end
2014๋
12์ 19์ผ ๊ธ์์ผ ์คํ 12์ 46๋ถ, Steven G. Johnson <
[email protected]>์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
๋์ ์์ฒญ: Jeff๋ ์ฌ๋ฌ ๊ฐ์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ข์ ์๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค.
๋์คํจ์น(๋ฐ ์๋ง๋ ๋จ๊ณ์ ๊ธฐ๋ฅ),
ํด๋น ๊ธฐ๋ฅ์ด ์๋ ์ธ์ด์์๋ ๋ ์ด๋ ต๊ฑฐ๋ ๋ ๋๋ฆฝ๋๋ค.์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/JuliaLang/julia/issues/8839#issuecomment -67671331.
์๋ฆญ ์ ๋คํฐ [email protected]
http://www.perimeterinstitute.ca/personal/eschnetter/
์ฃ์กํฉ๋๋ค. ๋ด ์ฝ๋์ ํจ์ ์๋ช
์์ eltype(f)
์ ๋ํ ํธ์ถ์ ๋ฌด์ํ์ญ์์ค.
๊ทธ๊ฒ์ ๋นํ์ค์
๋๋ค.
-์๋ฆญ
2014๋
12์ 19์ผ(๊ธ) ์คํ 3์ 88๋ถ, Erik Schnetter [email protected]
์ผ๋ค:
fmap
๊ตฌํํ์ต๋๋ค. ์ด๊ฒ์ ์ฌ๋ฌ ๋ฐฐ์ด์ ์ํํ๊ณ
๊ฐ ์์ ์งํฉ์ ๊ธฐ๋ฅ์ ์ ์ฉํฉ๋๋ค. ์ด ๊ตฌํ์ ์ค์ ๋ก
๋ฐฐ์ด ์๊ฐ ์์์ ์ผ ์ ์์ผ๋ฏ๋ก ๋งค์ฐ ๋๋ฆฝ๋๋ค. ์ด๋ฅผ ์ ์ฉํ๊ฒ ์ฌ์ฉํ๋ ค๋ฉด
๋ค์ํ ์์ ๋ํด ์ด ์ ๋ฌธํ๋ฅผ ์๋์ผ๋ก ๋ง๋ค์์ต๋๋ค.
์ธ์yss
. ๋๋ ํญ์ ์ด๊ฒ์ ์ํด ๋จ๊ณ์ ํจ์๋ฅผ ์์ฑํ๊ณ ์ถ์์ต๋๋ค.
ํ์ง๋ง ์์ง ํ์ง ์์์ต๋๋ค.์ค๋น๋ ํจ์๋ ํนํ
map
ํธ์ถ์ ํ๊ฐํด์ผ ํฉ๋๋ค.
f
์ ๋ํ ์ธ์๋ฅผ ์์ฑํฉ๋๋ค.-์๋ฆญ
function fmap{T,D}(f::Function, xs::Array{T,D}, yss::Array...; R::Type=eltype(f)) [<strong i="26">@assert</strong> size(ys) == size(xs) for ys in yss] rs = similar(xs, R) <strong i="27">@simd</strong> for i in 1:length(xs) <strong i="28">@inbounds</strong> rs[i] = f(xs[i], map(ys->ys[i], yss)...) end rs::Array{R,D} end
2014๋ 12์ 19์ผ ๊ธ์์ผ ์คํ 12์ 46๋ถ, Steven G. Johnson <
[email protected]>์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.๋์ ์์ฒญ: Jeff๋ ์ฌ๋ฌ ๊ฐ์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ข์ ์๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค.
๋์คํจ์น(๋ฐ ์๋ง๋ ๋จ๊ณ์ ๊ธฐ๋ฅ),
ํด๋น ๊ธฐ๋ฅ์ด ์๋ ์ธ์ด์์๋ ๋ ์ด๋ ต๊ฑฐ๋ ๋ ๋๋ฆฝ๋๋ค.์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/JuliaLang/julia/issues/8839#issuecomment -67671331.์๋ฆญ ์ ๋คํฐ [email protected]
http://www.perimeterinstitute.ca/personal/eschnetter/
์๋ฆญ ์ ๋คํฐ [email protected]
http://www.perimeterinstitute.ca/personal/eschnetter/
@timholy , Matlab๊ณผ NumPy์๋ ํ์ ๋ฐฐ์ด/์ฌ๋ผ์ด์ค๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ๋ค์ค ๋์คํจ์น๊ฐ ํ์์ ์ด๋ผ๊ณ ์ฃผ์ฅํ ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ตฌํ ์ฉ์ด์ฑ? ๋ด๊ฐ ๋งํ ์ ์๋ ํ ๋ชจ๋ ์ธ์ด๋ก ๋ค์ค ๋์คํจ์น๋ฅผ โโ์๋ฎฌ๋ ์ด์ ํ ์ ์์ผ๋ฏ๋ก ์ด๋ค ๊ฒ์๋ ํ์์ ์ธ ๊ฒ์ ์๋๋๋ค.
์์ง ๊ฒฐ์ ํ์ง ์์ ๊ฒ์ ์ ์ํ๋ ๊ฒ์ ์ข์ง ์์ ์ ์์ต๋๋ค. https://github.com/JuliaLang/julia/issues/9297 ์๋ ํจ์จ์ ์ธ UTF-8 ๋ฒํผ ์์น์ ๊ตฌ๋ฉ ์๋ ํธ๋ฆฌํ ์ธ๋ฑ์ฑ์ ๋ชจ๋ ํ์ฉํ์ฌ ์ํ ๋ ํธ๋ฆฌํ ์ฐ์ ์ฐ์ฐ์ ์ํํ ์ ์๋๋ก ํ๋ ์ ์์ด ์์ต๋๋ค. Regex ๋ฐ ๊ฒ์์ ๋ํ๋ ๋ด๋ถ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ์ง๋ง s[2]
๋ ์ฒซ ๋ฒ์งธ ์ธ์ฝ๋ฉ์ ์ฌ์ฉ๋ ๋ฐ์ดํธ ์์ ๊ด๊ณ์์ด ๋ ๋ฒ์งธ ๋ฌธ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
AbstractArrays
์ ํจ์จ์ ์ธ ํ์ ๋ฐฐ์ด/์ฌ๋ผ์ด์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๊น? ์๋๋ฉด ํด๋น ๊ตฌํ์ด ์ธ์ ํ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋ํด์๋ง ์๋ํฉ๋๊น? ๋ถ๋ชจ ๋ฐฐ์ด์ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ ์ ์๋ค๋ฉด ์ด๊ฒ์ ํด๊ฒฐํ๊ธฐ ๋งค์ฐ ์ด๋ ค์ด ๋ฌธ์ ๊ฐ ์๋๋๋ค. ๊ทธ๋ฐ ๊ฐ์ ์ ํ์ง ์์ ๋ ๋ ํฅ๋ฏธ๋ก์์ง๋๋ค.
์, ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ฐพ๊ณ ์๋ ํต์ฌ ๊ธฐ๋ฅ์ ๋๋ค. ๋ค์ค ๋์คํจ์น ๋ฐ/๋๋ ๋จ๊ณ์ ๊ธฐ๋ฅ์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ํ๋ฅญํ๊ฒ ์ํํ ์ ์์ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ์ธ์ด์ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ๊ธฐ๋ฅ ๊ตฌํ์ด ํจ์ฌ ๋ ์ด๋ ค์์ง๋๋ค(์ด์์ ์ผ๋ก๋ ์๋ฌด๋ ์๋ํ์ง ์์ ๊ฒ๋ณด๋ค ๋ ์ด๋ ต์ต๋๋ค).
@timholy , NumPy ๋ฐฐ์ด์ ๊ฐ ์ฐจ์์ ๋ํด ๊ณ ์ ๋ ๋ณดํญ์ผ๋ก ํน์ง์ง์ด์ง๋ฉฐ ๋ฐ๋์ ์ฐ์์ฑ์ ์๋๋๋ค(๋ณธ์ง์ ์ผ๋ก DenseArray
์ ๋์ผ). ์ด ์์ฑ์ ์ฌ๋ผ์ด์ฑ ์ ์ ์ง๋๋ฏ๋ก ์ฌ๋ผ์ด์ค ์์ฒด๋ฅผ ์ฌ๋ผ์ด์ฑํ ์ ์์ต๋๋ค.
aberrant๋ ์ด๋ฌํ ๋ผ์ธ์ ๋ฐ๋ผ IRC์ ๋ํด ๋ช ๊ฐ์ง ์ข์ ์ง๋ฌธ์ ํ์ต๋๋ค. ๋๋ ์๋์์ ๊ด๋ จ ์๋ ๋๊ธ(๊ด๋ จ ์๋ ๋ํ ๋ฐ ์๋ฆผ ์ค์์)๋ง ์ถ์ถํ๋ ค๊ณ ํ์ต๋๋ค.
2014-12-10 (EST)
11:41 aberrant: โOrganizing methods into function objects rather than having named bags of methods โinsideโ each object ends up being a highly beneficial aspect of the language design.โ
11:41 aberrant: why?
12:20 Travisty: aberrant: I canโt speak for them, but I imagine that the argument is that itโs a nice separation of concerns. I have data (which I will represent with types) and routines for operating on that data (which I will represent as functions), and rather than having some routines belong to specific types, they are kept separate
12:21 aberrant: Travisty: I sort of understand the argument, but Iโm not sure I agree with it :)
12:22 Travisty: aberrant: Yeah, sure. This is the sort of thing that may be hard to argue about from first principles, and it may be useful to look at examples. I think one place where this design simplified things was in impementing the standard mathematical functions on all of the numeric types, and dealing with conversion
12:22 Travisty: Iโm not sure, but I think the solution in julia is quite elegant because of this design and it would be a bit trickier to do it in the traditional OOP setting
12:23 aberrant: Travisty: perhaps. I need to think about it some more. I really like pure OO, and this is a bit of a change that I need to wrap my head around.
...
12:54 vtjnash: julia has a convention that a method name will end in a ! to signify that the method will mutate one of it's arguments
12:56 aberrant: thatโs one thing I sorely miss in python. foo.sort() vs foo.sorted() always confused me.
12:57 vtjnash: except that in python, isn't it sort(foo) vs sorted(foo) ?
12:57 aberrant: it might be :)
12:58 aberrant: no
12:58 aberrant: itโs foo.sort vs sorted(foo)
12:58 vtjnash: ah
12:58 aberrant: foo.sort modifies foo in place.
12:58 aberrant: see?
12:58 aberrant: thatโs what I mean.
12:58 vtjnash: well, anyways, that's an unintentional example of why . oriented programming is a pain
12:58 aberrant: sort(foo) vs sort!(foo) makes much more sense.
12:59 vtjnash: python made a reasonable choice there
12:59 vtjnash: and tries to help you remember
12:59 vtjnash: but it still was forced to make some decision
2014-12-14 (EST)
15:25 aberrant: thereโs no way to do type constants, I guess?
15:25 aberrant: http://dpaste.com/18AEHBG
15:25 aberrant: like that
15:27 vtjnash: no. that declares a local variable inside the type (can be seen by the constructors and other methods in there)
15:27 vtjnash: instead, define `y(::Foo) = 6`
15:28 aberrant: is that mutable?
15:29 aberrant: hm, yeah, thatโs not what I want though.
15:29 aberrant: but I guess I can use it.
15:30 vtjnash: not what you want, or not what other languages do?
15:31 vtjnash: multiple dispatch in julia allows you to collapse 4 or 5 or more different constructs needed by other OO languages into one abstraction
15:33 aberrant: oh, I see how it works.
15:33 aberrant: well, itโs a function and therefore more overhead
15:33 aberrant: basically, I want to set the โbitwidthโ of an IPv4 address to be 32, and the โbitwidthโ of an IPv6 address to be 128, and then be able to write a function that takes ::IPAddr and uses the appropriate bitwidth.
15:34 aberrant: I can do this with the function, but it seems like overhead to have a function return a constant.
15:35 aberrant: e.g., http://dpaste.com/3RXRCAG
15:36 vtjnash: don't assume that a function has more overhead
15:36 vtjnash: in this case, it would actually have less overhead
15:54 aberrant: wow, ok
15:54 aberrant: I donโt see how, but Iโll take your word for it :)
15:59 vtjnash: inlining
...
18:04 aberrant: thereโs no way to associate a constant inside a type?
18:04 aberrant: it would make my life a whole lot easier.
18:04 mlubin: aberrant: t.constant or constant(t) is just a syntax difference
18:04 mlubin: julia uses the latter
18:05 aberrant: mlubin: the issue is that you have to instantiate the type first.
18:05 aberrant: mlubin: I need the equivalent of a class property.
18:05 mlubin: constant(::Type{Int32}) = 10
18:05 mlubin: constant(Int32)
18:05 aberrant: oh. wow.
18:06 Travisty: The only member of Type{T} is T, which is why this works
18:06 mlubin: mind=blown? ;)
18:06 aberrant: yeah
18:06 aberrant: thatโs jacked up
18:07 aberrant: thereโs NO WAY I would have ever thought of that on my own :(
18:07 mlubin: once you see it for the first time it becomes a lot more intuitive
18:07 aberrant: ipaddrwidth(::Type{IPv4}) = uint8(32)
18:08 aberrant: w00t
18:10 aberrant: can I do a const in front of that?
18:11 Travisty: I donโt think so, but usually when julia generates code, it should be inlined so that just the constant uint8(32) appears, instead of a function call
๋ ๋ง์ ์๋ฅผ ์ฐพ๊ณ ์๋ค๋ฉด: https://github.com/JuliaLang/julia/pull/7291
์ ์ฝ๋ ๊ฐ์๋ 6K C++์์ ์ฝ 1K Julia๊น์ง ์ข์ต๋๋ค. ์ด๊ธฐ ์ฑ๋ฅ ๋ฒค์น๋งํฌ์ ๋ฐ๋ฅด๋ฉด ๋ค์ดํฐ๋ธ C++์ 2๋ฐฐ ๋ฏธ๋ง์ ๋๋ค.
์ฐ์ฐ์(+-*/, Int, Float)์์ ์ซ์ ์ถ๋ ฅ ํ์์ ์ด๋ฅด๊ธฐ๊น์ง ์ธ์ด ์์ฒด์์ printf์ ๊ตฌํ์ ์ฃผ์ฅํ ์ ์๊ณ libc ๋ฒ์ ์ ์์ ์ฌ๋ฐฑ ๋ด์์ ๋ฒค์น๋งํนํ ์ ์๋ ์ธ์ด๊ฐ ์ผ๋ง๋ ๋๋์ง ์๊ณ ์์ต๋๊น? ์๋ง๋ C++? C๋ ์ด๊ฒ์ ์ฃผ์ฅํ ์๋ ์์ต๋๋ค(์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ์ด ์์ต๋๋ค).
ํ์ด์ฌ/MATLAB/๋ฑ. ์ด ์ค ์ผ๋ถ๋ฅผ ์ฃผ์ฅํ ์๋ ์์ง๋ง MATLAB์์ ๋ฌธ์์ด ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ๋ณธ ์ ์ด ์์ต๋๊น?
์ด๊ฒ์ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ํ ๋ก ์ด๋ฉฐ ๋ช ๊ฐ์ง ์์ ์ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค.
๋ค์ค ๋์คํจ์น๊ฐ ์ผ๋ง๋ ํจ๊ณผ์ ์ธ์ง ์ค๋ช ํ๊ธฐ๊ฐ ์ผ๋ง๋ ์ด๋ ค์ด์ง ์์ฒด๊ฐ ์๋นํ ํฅ๋ฏธ๋กญ์ต๋๋ค.
์ด์ ๊ฐ์ ํ์ด์ง์ ์๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ์, ์ฐ๋ฆฌ์ ์๋ก์ด ํ์ ๋ฐฐ์ด์ ๋ณดํญ์ ์์กดํ์ง ์์ผ๋ฉฐ ์ ํ ์ธ๋ฑ์ฑ์ด ํ์ํ์ง๋ ์์ต๋๋ค(๋น๋ก ์ฌ์ฉํ ์ ์๊ณ ํจ์จ์ ์ธ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ํํจ). ๋ฐ๋ผ์ ๋ชจ๋ AbstractArray์ ๋ํด ํจ์จ์ ์ผ๋ก ์๋ํ๊ณ "๋น์คํธ๋ผ์ด๋"( Vector{Int}
์ธ๋ฑ์ค) ๋ณด๊ธฐ๋ ์ง์ํฉ๋๋ค.
๋ช
ํํ ํ๊ธฐ ์ํด ์ ๋ ์ฃผ๋ก ๋ค์ค ๋์คํจ์น๊ฐ ์๋ ๋จ๊ณ์ ๊ธฐ๋ฅ์ ์๋ก ์๋ก์ด SubArray๋ฅผ ์ ์ํ์ต๋๋ค. ์ฆ, ํ์ฌ ์ฒด๊ณ๋ ๋ค์ค ๋์คํจ์น ์์ด ๊ตฌ์ฑ ๋จ๊ณ์์ ๋ฌด๋์ง ๊ฒ์
๋๋ค. slice(::AbstractArray, ::UnitRange{Int}, ::Int, ::Vector{Int})
๋ฐ slice(::AbstractArray, ::Int, ::UnitRange{Int}, ::UnitRange{Int})
๋ฑ์ ๋ํด ์์ ํ ๋ค๋ฅธ ์์ฑ์ ๋ฉ์๋๋ฅผ ํธ์ถํฉ๋๋ค. ์ด๋ฌํ ์์ฑ์๋ ๋จ๊ณ์ ํจ์์ ์ํด ์์ฑ๋์ง๋ง ์ฐ๋ฆฌ๋ ์์คํ
์ด ์๋ํ๋ ค๋ฉด ์ฌ๋ฌ ๋์คํจ์น๊ฐ ํ์ํฉ๋๋ค.
๋ณ๋์ ํจ์๊ฐ ์์ผ๋ฉด varargs ์์ฑ์๋ ์ธ๋ฑ์ค ํํ์ ํญ๋ชฉ์ ๋ฐ๋ณตํ๋ ๊ฒ์ด ์ ํ์ด ์์ ์ ์ด์ง ์๋ค๋ ์ฌ์ค์ ์ง๋ฉดํด์ผ ํฉ๋๋ค. ๋ฃจํ์์ ๊ฐ๋ณ ์ธ๋ฑ์ค๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด ๋ช ๋ช ๋ ์ค์นผ๋ผ ๋ณ์์ ํ ๋นํด์ผ ํ๋ฉฐ ํด๋น ๋ณ์๋ ์ ๋ ฅ ํํ์ด ๊ฐ๋ฅํ๋๋ผ๋ ์ ์ ๋ ฅ๋์ง ์๋ ๊ฒ์ด ๋ณด์ฅ๋ฉ๋๋ค. ๋ฌผ๋ก , staged ํจ์๋ ํจ์ฌ ๋ ๋ง์ ์ผ์ ํฉ๋๋ค. ๊ฑฐ์ ๋ชจ๋ "์ด๋ ค์ด" ๊ฒฐ์ ์ ์ด๊ฒ์ ์ฌ๋ผ์ด์ค ์ฐจ์์ผ๋ก ์ญ์ ํ ๊ฒ์ธ์ง ์๋๋ฉด ์ ์งํ ๊ฒ์ธ์ง, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด์ ๋ด๋ถ ํํ์ ๋ํ ๊ฒฐ๊ณผ๋ ๋ฌด์์ ๋๊น? ---์ปดํ์ผ ํ์์ ๋ง๋ค์ด ๋ฐํ์ ์์ฑ์๋ฅผ ๋งค์ฐ ์ฌ์ํ ์์ ์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค. ์ ๋ ฅ ์ ํ์ ๊ฐ ์กฐํฉ์ ๋ํด ํน์ ์ฌ์ํ ์์ ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ด ์ฌ์ํ ๊ฒ์ ์ด์ฉํ๊ณ ๋น ๋ฅด๊ฒ ๊ตฌ์ฑํ๋ ค๋ฉด ์ ๋ ฅ ์ ํ์ ๊ฐ ์กฐํฉ์ ๋ํด ์ฌ์ฉ์ ์ ์๋ ๋ค๋ฅธ ๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ๋จ๊ณ์ ๊ธฐ๋ฅ๊ณผ ๋ค์ค ๋์คํจ์น ๋ชจ๋๊ฐ ํ์ํ ์ด์ ์ ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก, ๋๋ ์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ ๋จ๊ณ์ ๊ธฐ๋ฅ๊ณผ ๋ค์ค ๋์คํจ์น์ ์กฐํฉ ์์ด ์ํํ ์ ์์์ง, ๊ทธ๋ฆฌ๊ณ julia๊ฐ ์ด์ ๋ชจ๋ ์ธ์ด ์ค ๊ฐ์ฅ ์ ์ฐํ๊ณ ํจ์จ์ ์ธ ๋ฐฐ์ด ๋ณด๊ธฐ๋ฅผ ๊ฐ๊ฒ ๋์๋์ง ์์ฌ์ค๋ฝ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ด ๋ฌธ์ ์ ๋ํด ์ด๋ค ์ข ๋ฅ์ ์ค์ ์ฐ๊ตฌ๋ฅผ ์ํํ ์ฒํ์ง ์์ต๋๋ค.
์ด๊ฒ์ ์ถํ์ ์ํด SubArray๋ฅผ ์์ฑํด์ผ ํ๋์ง ๊ถ๊ธํ๊ฒ ๋ง๋ญ๋๋ค. ---์ฌ๊ธฐ์ ์๋ก์ด ๊ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@StefanKarpinski : ์๊ธฐ ๋นํ์ ์ด์ด์ผ ํฉ๋๋ค. ์ด์ฉ๋ฉด ์์ง ์์ฑํ์ง ์์์ ์๋ ์์ต๋๋ค.
@timholy ์ ๋ ์ค์ ๋ก ์ฌ๊ธฐ์์ ๋ ๊ฐ์ง๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๋จ๊ณ์ ๊ธฐ๋ฅ(์์ ํ ์ดํดํ์ง ๋ชปํ๋ค๋ ์ ์ ์ธ์ ํด์ผ ํจ)๊ณผ Julia๊ฐ C++ ๊ฐ์ ๊ธฐ๋ฅ ๋ ํ ํ๋ฆฟ ์ ๋๋ฒ์ค(์ฌ๊ธฐ์ C# ๋ฐ Java์ ์ ์ฌํจ)์ ์ ํฉํ ๋ฐฉ๋ฒ์ ๋๋ค.
C++ ๋น๊ต๋ฅผ ์ํด ํ์ด๋ฐ์ ์ํํ๊ณ ์ปดํ์ผ ์๊ฐ ๋คํ์ฑ์ ๋๋ฌํ ์ ์๋ค๋ ๊ฒ์ ์คํ์ ์ผ๋ก ์ฆ๋ช ํ๋ ๊ฒ์ ๋งค์ฐ ํฅ๋ฏธ๋ก์ธ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ํ๋์ ๊ณต์ํํ๊ณ ์ถ์๋ ๋ ๋ค๋ฅธ ๊ฒ์ Julia๊ฐ C++ ๊ฐ๋ (๋ผ์ดํธ)๊ณผ ๊ด๋ จํ์ฌ C++์ ์ด๋ป๊ฒ ๋น๊ต๋๋์ง์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ํ์ ์ ํ์ C++ ๊ฐ๋ ์ ํฐ ๋ถ๋ถ์ ๋๋ค.
์ด๊ฒ์ ํ์ธํ๊ธฐ ์ํด ๋ง์ C++ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ํ์ด๋ฐ์ ์คํํด์ผ ํฉ๋๊น?
A = rand(3,5)
<strong i="6">@code_llvm</strong> slice(A, 2, :)
<strong i="7">@code_llvm</strong> slice(A, :, 2)
๊ธฐ๋ณธ์ ์ผ๋ก ๋ก๋ ๋ฐ ์ ์ฅ ์์ (์ฆ, ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค) ์ธ์๋ ์๋ฌด ๊ฒ๋ ์์ต๋๋ค.
@timholy ๋๋ ์ด๊ฒ์ ์ธ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ Nd ๋ฐฐ์ด์ ๊ตฌํํ๋ ๋ง์ ์์คํ ์ด ์ฒ์ ๋ช ์ฐจ์์ ๋ํด ํน์ ๊ตฌํ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ ์ง ์์ผ๋ฉด ๋๋ฆฐ ๊ฒ์ผ๋ก ๋์ฒด๋๋ฉฐ ์๋ก์ด ๊ตฌํ์ ๊ฒฝ์ฐ์๋ ๊ทธ๋ ์ง ์์์ผ ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค(๊ฒ์ฆ๋์ง๋ ์์).
๋ ๋ค๋ฅธ ๊ด๋ จ ์ฌ๋ก๋ ํจ์จ์ ์ธ ํฌ์ Nd ์ ์ฅ์๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋๋ค(๋ฐฐ์ด์ ์ผ๋ฐ์ ์ธ ํน์ ์ฌ๋ก์).
ํ,
์, ์ค์ ๋ก ๊ฒฐ๊ณผ ์ด์ ๋ธ๋ฆฌ ์ฝ๋๋ฅผ ๋ณด๋ ๊ฒ์ ํ๋ฅญํ ๋๊ตฌ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ์ด๊ฒ์ (C++ ๊ตฌํ์์) ๊ฐ์ ๊ธฐ๋ฅ์ ๊ณ ๋ คํด์ผ ํ๋ ๋ ํฐ ๋งฅ๋ฝ์์ ๋น๊ต๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด ์๊ฐ์ ์ค์ ๋ก ๊ทธ๋ ๊ฒ ๋น ๋ฅธ ๊ฒ์ multiple dispatch
๊ฐ ์๋๋ผ ๋ฐํ์์ ์ธ๋ผ์ธํ ์ ์์ผ๋ฏ๋ก ๊ฐ์ ํจ์(์ผ๋ฐ ํจ์๊ฐ ์์)๋ฅผ ํจ์ ํธ์ถ ๊ฐ์ ์ง์ ์์ด ํจ์จ์ ์ธ ๋ช
๋ น์ด๋ก ๋ณํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
์ด๊ฒ์ด ์ฌ์ค์ด๋ผ๋ฉด (์ ๊ฐ ํ๋ ธ๋ค๋ฉด ์ ์ ํด์ฃผ์ธ์ @JeffBezanson @vtjnash @stevengj @timholy ) multiple dispatch
์ ๋ฐฐ์๋ Julia๊ฐ ๊ทธ๋ ๊ฒ ๋น ๋ฅธ ์ด์ ๊ฐ ์๋๋ผ ํน์ ์ฝ๋๋ฅผ ๊ณต์ํํ ์ ์๋ ๊น๋ํ ์ธก๋ฉด ์ํฅ์
๋๋ค nicer(๋จ์ผ ๋์คํจ์น๊ฐ ์ ํ๋๋ ๊ฒฝ์ฐ)
๋๋ ์๋ง๋ ์ดํดํ์ง ๋ชปํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ด ๋ง๋ค๊ณ ์๋ ๊ตฌ๋ณ์ด ํ์คํ์ง ์์ต๋๋ค. Julia์์ "์ธ๋ผ์ธ"๊ณผ "๋ฐํ์"์ ์ค์ ๋ก ํจ๊ป ๊ฐ๋ ๊ฒ ๊ฐ์ง ์์ต๋๋ค. ์ธ๋ผ์ธ์ ํ์ ์ ์ถ ์ค์, ์ฆ ์ปดํ์ผ ํ์์ ์ํ๋ฉ๋๋ค. ๋ค์ค ๋์คํจ์น๋ ์ ์ถ๋ ์ ํ์ ๋ํด ์ ์ ํ ๋ฐฉ๋ฒ์ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ฌ๊ธฐ์ ํผ๋์ C++์ "์ปดํ์ผ ์๊ฐ"๊ณผ "๋ฐํ์"์ด Julia์ ๋น๊ตํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. Codegen์ "๋ฐํ์" ์ค์ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก include("myscript.jl")
ํ๋ฉด ์ธ๋ผ์ธ์ด ์ํ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ "๋ฐํ์"์ด C++ ๊ด์ ์์ ์ ์ ํ ๋จ์ด๊ฐ ์๋๋๋ผ๋ "๋ฐํ์"์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ ํ์ ๋ํ ๋์คํจ์นญ์ vtable๊ณผ ๋น์ทํ์ง๋ง ๋ ์ผ๋ฐ์ ์ด์ง ์์ต๋๊น?
์ด๊ฒ์ ์ถํ์ ์ํด SubArray๋ฅผ ์์ฑํด์ผ ํ๋์ง ๊ถ๊ธํ๊ฒ ๋ง๋ญ๋๋ค. ---์ฌ๊ธฐ์ ์๋ก์ด ๊ฒ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ์ค ์ฃผ์ ์๋ ์กฐ๊ธ ๊ฑฐ๋ฆฌ๊ฐ ์์ง๋ง JSS์ ์ ์ถํ๋ ๊ฒ์ ๊ณ ๋ คํ ์ ์์ต๋๋ค. Julia ๊ธฐ์ฌ๊ฐ ๋ ํ์ํฉ๋๋ค.
Tim์ด ์ด ์์ ์ ์ค๋ช ํ๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์์ฑํ๋ฉด ๋ง์ ์ฌ๋๋ค์ด ์๋๋ฅผ ๋ผ ์ ์๊ธฐ ๋๋ฌธ์ ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. JSS๋ ํ๋ฅญํ ์์ด๋์ด์ด๋ฉฐ ๋ฐ์ดํฐ ํ๋ ์ ๋ฐ ๋ฐฐํฌํ์์ ์ํ๋ ๊ธฐ๋ณธ ์์ ์ค ์ผ๋ถ๋ ์ธ ๊ฐ์น๊ฐ ์์ต๋๊น? ๋๋ ํ์คํ ๊ทธ๊ฒ์ ์ฝ๋ ๊ฒ์ ์ฆ๊ธด๋ค.
๊ธ์, ๋ด๊ฐ ๊ทธ๊ฒ์ ๋ํด ์๊ฐํ๊ฒ ๋ง๋ ๊ฒ์ ๋ง์ ๋ถ๋ถ์ด http://docs.julialang.org/en/latest/devdocs/subarrays/์ ์์ฑ๋์๋ค๋ ๊ฒ์ ๋๋ค. ์ถํ๋ฌผ์ ๊ฒฝ์ฐ ํจ์ฌ ๋ ์์ธํ ์ค๋ช ํ๊ณ ์ถ์ง๋ง ์ด๊ฒ์ ์ฃผ์ ํฐ ๊ทธ๋ฆผ ์์ ์ ์๋น ๋ถ๋ถ์ ์ฐจ์งํฉ๋๋ค.
@stevengj ๊ฐ ๋ค์ค ๋์คํจ์น์ ๋ํด ์ ๊ธฐํ ์ง๋ฌธ์ ๋ํด ๋ค์ค ๋์คํจ์น ์์ด๋ julia์์ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ๊ธฐ๊ฐ ๊ฝค ์ด๋ ต๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. ๋๋ ์ฌ๊ธฐ ์๋ ๋ชจ๋ ์ฌ๋๋ค์ด ์ด๋ฏธ ์๊ณ ์๋ ๊ฒ์ ๋งํ๊ณ ์์ผ๋ฉฐ ์ด๊ฒ์ด ์ฌ๊ธฐ์์ ์ ๊ธฐ๋ ์ด์ ์ ๋ํ ์ค๋๋ ฅ ์๋ ์๊ฐ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
์ซ์ ์ฐ์ฐ ๋ฐ ์ ํ/ํ๋ก๋ชจ์ ๊ณผ ๊ฐ์ ์ธ๋ถ ์ฌํญ์ ์ฌ๋ฌ ๋์คํจ์น์ ๋ณต์กํ๊ฒ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค. ๋ค์ค ๋์คํจ์น๋ ์ฝ๋์์ ์ ํ์ด ์ฌ์ฉ๋๋ ๋ฐฉ์์ ๋ํด ์ปดํ์ผ๋ฌ์ ์ ํ ์ถ๋ก ์ ๋ณธ์ง์ ์ผ๋ก ๋ ธ์ถํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ด๊ณ ๋น ๋ฅธ ์ซ์ ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ๋น์ ์ด ํ ๋ง์ ์ธ์ฉํ์๋ฉด - ์ ์ฑ ์ ์ปดํ์ผ๋ฌ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ถ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด @JeffBezanson ์ Scheme ์ฌ์์ด ์์น์ ์ธ๋ถ ์ฌํญ์ ๊ณต๊ฐ์ 1/3์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ํ ๋ฒ ๋ณด์ฌ์ฃผ์์ต๋๋ค.
ํด์๋ ๋ง์ ์์คํ ์ ์ข ์ข ์ผ๋ฐ ์ ํ์ ๊ฐ๊ฒ ๋๋ฉฐ ์คํํ ์ฝ๋์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ํด ๋ฐํ์์ ํด๋น ๊ฐ์ฒด์ ์ ํ์ ๊ฒ์ฌํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฐ ์ ํ์ ๋ํ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ C/C++/Fortran์ ๋ณ๋์ ๊ตฌํ์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ ์ด๋ก ์ธํด ์ฝ๋๋ฒ ์ด์ค๊ฐ ํฌ๊ณ ๋๋ฒ๊ทธํ๊ธฐ ์ด๋ ต์ต๋๋ค. ์ข ์ข ์ด๋ค์ ์ธ๋ถ ๋งคํฌ๋ก ์์คํ ์ ํตํด ์์ฑ๋์ง๋ง C++ ํ ํ๋ฆฟ์ ์ ์ ๋ ๋ง์ด ์ฌ์ฉํ์ฌ ์ด ํน์ ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค. ๋ ๊ฐ์ง ์ธ์ด ๋ฐ ํ์ ์ ์ถ ๋ฌธ์ ๋ ์ด๋ฌํ ๊ฒฝ์ฐ์๋ ์ฌ์ ํ ๋จ์ ์์ต๋๋ค.
์ด๋ค ์์ค์์ ๋ฒกํฐํ๋ ์ผ๋ง๋ ๋ง์ ๊ณผํ ์ธ์ด๊ฐ ๋ฐํ์์ ์ ํ์ ๊ฒฐ์ ํ๊ณ ์ ์ ํ ์ฝ๋ ์ ํ์ ์ํํ๋ ๋น์ฉ์ ์๊ฐํ๋๊ฐ์ ๋๋ค. Julia์์๋ ํ์ ์ ์ถ, ๋ค์ค ๋์คํจ์น ๋ฐ ์ผ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ ๊ฒฐํฉํ์ฌ ๋ ๊ฐ์ง ๋น์ฉ์ ๋ชจ๋ ํฌ๊ฒ ๋ฎ์ถ์ด ํ์ ์๋ ์ผ๋ฐ ์ญ๋ฒกํฐํ๋ ์ฝ๋(C)๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
ํ ๊ฐ์ง ์๋ PR #9198์์ MathConst
(๋ฌด๋ฆฌ์๋ฅผ ๋ํ๋)์์ ๋ถํ๋ฑ ๋น๊ต์
๋๋ค.
https://github.com/JuliaLang/julia/pull/9198/files#diff -e247e18c426659d185379c7c96c1899dR29
FloatingPoint
๋ MathConst
๋ ๋ถ๋ ์์์ ์ ์์ ์/์๋ ๋ถ๋ ์์์ ๊ณผ ๋น๊ตํฉ๋๋ค.Rational{T}
๋ MathConst
(์ ํ๋ ์ ์ ์ ํ์ ๊ฒฝ์ฐ T
)์ ์ ํ์ผ๋ก ํํํ ์ ์๋ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ๋ฆฌ์๋ฅผ ์ฐพ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ทธ๊ฒ์ด ์ง์ ํ ๋นํฉ๋ฆฌ์ ์ ํ ์์ธ์ง ์๋์ธ์ง์ ๋ฐ๋ผ.์ด๊ฒ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ฒ์ ์ปดํ์ผ ํ์์ Rational
๋ฐ BigFloat
๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋งคํฌ๋ก ์ ์ฒ๋ฆฌ๊ธฐ์ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ์๋ ์์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ ๊ฐ์ง ๊ตฌํ์ด ํ์ํฉ๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์์ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๋ค. ์ด ๋ฌธ์๋ ์ด์ ๋์ค์๊ฒ ๊ณต๊ฐ๋ฉ๋๋ค: https://github.com/JeffBezanson/phdthesis
์ค๋ ์ ๋ ์ผ์ข ์ ๋๋ํํธ๋ฅผ ์์ฒด์ ์ผ๋ก ์ ํ ๊ธฐํ์ ๋ง์ถฐ ๊ณต๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ ์ด์์ด ์๋๋๋ค. ๋ง์ ์กฐ๊ฐ์ด ์์ ํ ๋๋ฝ๋์์ต๋๋ค. ๋ํ TeX ์ฃผ์ ๋ด๋ถ์ ์๊ฑฐ๋ ๊ณผ๊ฑฐ ๋ฒ์ ๊ธฐ๋ก์๋ง ์กด์ฌํ๋ ๋ชจ๋ ๊ฒ์ ๋ํด ์ฑ ์์ ์ง์ง ์์ต๋๋ค. :)
๋ชจ๋ ํผ๋๋ฐฑ์ ํ์ํฉ๋๋ค! ํนํ, ์ธ์ด๋ฅผ ์ ๋ณด์ฌ์ฃผ๋ ์ค๋ฆฌ์ ์ฝ๋์ ์ข์ ์๊ฐ ์๋ ๊ฒฝ์ฐ, ํนํ ์ธ์ด ์์ด๋ ํ๊ธฐ ํ๋ ๋ชจ๋ ์์ ์ด ๊ทธ๋ ์ต๋๋ค. ํญ์ ์ค์ํ์ง ์์ ๋ค์ค ๋์คํจ์น ์์ ๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค.
๊ณต๊ฐํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. SGJ๊ฐ ์ฌ์ฉํ ๋งํฌ๋ฅผ ๋ฐ๋ผ๊ฐ๋ ค๋ค๊ฐ 404๋ฅผ ๋๋ ์ ๋ ๋๋์ต๋๋ค.
์ผ๊ฐํ๋ ฌ ์ฐ์ ์ Julia์ ๋ค์ค ๋์คํจ์น์ ์ ์ฉ์ฑ์ ๋ํ ์๊ฐ ๋ ์ ์์ต๋๋ค. ์ฌ๊ธฐ UpperTriangular+UpperTriangular=UpperTriangular
์ด์ง๋ง UpperTriangular+LowerTriangular=Matrix
์
๋๋ค.
๋ํ ์์ ์ ํ์ ํ๋ก๋ชจ์ ์ ๋ํด์๋ ์ด์ผ๊ธฐํ์ต๋๋ค. ๋๋ ๋น์ ์ด ํ์ํ์ง ์์ ๋ ์น์ง์ ํผํ ์ ์๋ค๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด
julia> Base.LinAlg.UnitLowerTriangular(ones(Int, 3, 3))\[1,2,3]
3-element Array{Int64,1}:
1
1
1
julia> Base.LinAlg.UnitLowerTriangular(ones(Int, 3, 3))\[1,2,3.0]
3-element Array{Float64,1}:
1.0
1.0
1.0
์ด๊ฒ์ด Julia์๊ฒ ์ผ๋ง๋ ๊ตฌ์ฒด์ ์ธ์ง ๋งํ ์๋ ์์ง๋ง, ์ฐ๋ฆฌ๊ฐ ๋ณด์๋ฏ์ด ์ต์ํ Eigen์ ์น๊ฒฉ์ ๊ด๋ฆฌํ์ง ์์ ๊ฒ์ด์ง๋ง ์ ํ ๋์ ์ฐ์ฐ์์ ์์ ์ ํ์ด ์์ ์ ์ด์ด์ผ ํฉ๋๋ค.
Jeff๋ ์ด์ ๋ง์ง๋ง ๋จ๊ณ๋ก ์ ์ด๋ค๊ณ ์์ผ๋ฏ๋ก ๊ทธ์ ๋ ผ๋ฌธ์ ๋ํ ํผ๋๋ฐฑ๊ณผ ์์ ์ฌํญ(์์ ์ธ๊ธ๋ github ์ ์ฅ์ ์ฐธ์กฐ)์ด ํนํ ํ์๋ฐ์ ๊ฒ์ ๋๋ค.
์คํ, ๋๋ฝ๋ ์ฐธ์กฐ ๋ฑ์ ๋ํ PR์ ์์ ๋กญ๊ฒ ์ ์ถํ์ญ์์ค.
@stevengj ์ฌ๊ธฐ์์ ๋ฐฉ์ด ์ผ์ ๋ฐํ๋ฅผ ์์ํด์ผ ํ๋์?
๋ค.
๊ทธ๊ฐ MIT์์ ์ด๋ฏธ ์ผ์ ํ๊ณ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค... (๋๋ ๊ทธ๊ฐ Julia์ ํ๋ฅญํ ์์ ์ ๊ณ์ํ ์ ์๋ ๊ณณ์ด๋ฉด ์ด๋๋ ์ง)... ์ง๊ธ ๊ทธ์ ๋ ผ๋ฌธ์ ์ฝ๊ณ ์์ต๋๋ค... ํ๋ฅญํ ์๋ฃ, IMO!
@andreasnoack ์กฐ๊ธ ๋ํดํ์ง๋ง ์ด์จ๋ ์ฌ๋ฏธ์์ต๋๋ค. ํ์ดํ ํ๋ ฌ ๋ง ์ ํ์ ์ ์ํ๊ณ ๋ฐ์ผ๋ก๋ถํฐ Cholesky ์ธ์๋ถํด๋ฅผ ์ ์ฉํ์ฌ ํ์ดํ ํ๋ ฌ์ ํ์ดํ ํ๋ ฌ์ ์ด๋ ์คํค ์ธ์๋ถํด ๊ตฌ์กฐ๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง ํ์ธํฉ๋๋ค. https://gist.github.com/mschauer/c325ff89cd378fe7ecd6 ("A" ํ์ดํ ํ๋ ฌ, "F" ์ ์ฒด ํ๋ ฌ, "L" ์๋์ชฝ ์ ๋ฐ ํ์ดํ").
@ScottPJones ๊ฐ์ฌํฉ๋๋ค!!
๋ฐฉ์ด ์์ : 5์ 13์ผ ์์์ผ ์คํ 1์ Stata D-463.
@JeffBezanson replay.csail.mit.edu ๋ฅผ ํตํด ๋ น์ํ ๊ณํ์ธ๊ฐ์?
...์๋ง ์์ด๋ฒ๋ฆฌ๋๊ฒ ๋์์ง๋... :)
์ด๊ฒ์ด ๋ง์ง๋ง ์ฒดํฌ๋ฐ์ค์ ์ฉ๋๊ฐ ์๋๊ฐ์?
์ฃผ์๋ฅผ ์๋ ค์ผ ํ๋ _์ ๋ง_ ํ์ ํฉ๋๊น? ๋น์ ์ ๋น์ ์ ๋ ผ๋ฌธ์ ์๋ช ๋ ์ฌ๋ณธ์ ์ํ๋ ํฌ ๋ณด์ด์ฆ์ ์ํด ๋ถ๋น๊ฒ ๋ ์๋ ์์ต๋๋ค! :์์์ด ๋์น๋:
๋๋ ์ด๋ฏธ ๋ด ํฐ์ผ์ ์ป์๋ค. ๊ฐ๊ฒฉ์ด ์์์ฅ์์ ์ด๋ฏธ 800๋ฌ๋ฌ๊น์ง ์ฌ๋๋ค๊ณ ๋ค์์ต๋๋ค.
๋ด ์๋์๋ Stata D-463์ด ์์์ต๋๋ค... (๋๋ ๋จ์ง ์น๊ตฌ๋ฅผ ๋ฐฉ๋ฌธํ๊ธฐ ์ํด ๊ทธ๋ฆฌ๊ณ NE Database Day๋ฅผ ์ํด ๊ฑฐ๊ธฐ์ ๊ฐ์ ๋ฟ์ ๋๋ค)... ์ถฉ๋ถํ ์ปค์ง๊น์? ํ์คํ ๊ทธ๋ 10-250์ด ํ์ํ ๊ฒ์ ๋๋ค!
๊ณต์์ ์ผ๋ก D-463์ 48๊ฐ์ ์์์ ๋ง์ต๋๋ค. ๊ทธ๊ฒ์ผ๋ก ์ถฉ๋ถํ์ง ์๋ค๊ณ ์๊ฐ๋๋ฉด ๋ ํฐ ๋ฐฉ์ ๊ตฌํ ์ ์์ต๋๋ค.
๋๋ ์ง์งํ๊ฒ ๋น์ ์ด ํ ์ผ์ ๋ํด ์ ๋ง๋ก ๊ฐ์ฌํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค! ํฌ์ด ๋ชจ๋ ๋ชจ์๋ค๋ฉด 10-250๋ช ์ด ์ถฉ๋ถํ์ง ์์์ ๊ฒ์ ๋๋ค... ์ง๊ธ Kresge๋ฅผ ์์ฝํ์ธ์!
_๋ฐฐ์ด ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์ ๊ณผํ ๋ฐ ๊ธฐ์ ์ปดํจํ ์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์์คํ ์ ์ํธ ์์ฉ์ ์ํ ๊ณ ๊ธ ์ธ์ด์ ์์ ์ด๋ฃจ๋ ๋ด์ฅ ํจ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ์ํ๋์ง๋ง ์ด๋ฌํ ์ธ์ด๋ก ๋ ์คํฌ๋ฆฝํ ์ ๋ฐ๋์ ๋๋ฆฌ๊ณ ์์ง๋์ด๋ง์ ์์ ์ ์ธ ์ ์ ๋ง์ด ์ด ๋ฌธ์ ๋ฅผ ๋ถ๋ถ์ ์ผ๋ก ๊ฐ์ ํ ์ ์๋ค๊ณ ๋๋ฆฌ ์๋ ค์ ธ ์์ต๋๋ค._
_์ด ๋ ผ๋ฌธ์ ์ค์ ๋ก ํ์ํ ๊ฒ์ ์ด ๊ธฐ๋ฅ์ ์ํ ๋ณด๋ค ์ผ๊ด๋ ๊ตฌ์กฐ๋ผ๊ณ ์ฃผ์ฅํฉ๋๋ค. ํ๋๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ํ ํฌ๋์ปฌ ์ปดํจํ ์ด ์ค์ ๋ก ๋ฌด์์ ๊ดํ ๊ฒ์ธ์ง ๋ฌผ์ด๋ด์ผ ํฉ๋๋ค. ์ด ๋ ผ๋ฌธ์ ์ด๋ฌํ ์ข ๋ฅ์ ํ๋ก๊ทธ๋๋ฐ์ด ์ฐ์ฐ์ ๋ณต์ก์ฑ๊ณผ ์ฝ๋ ์ ๋ฌธํ์ ์ค์ ์ ๋ ๊ฒ์ด ํน์ง์ด๋ฉฐ ์ธ์ด๊ฐ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ๋ ์ ๋ง๋๋ก ์ค๊ณ๋ ์ ์์์ ์์ฌํฉ๋๋ค._
_ํต์ฌ ์์ด๋์ด๋ ์ฝ๋_ _์ ํ _ _์ฝ๋ ์_ _์ ๋ฌธํ _ , _์ผ๋ฐ ํจ์ ๋ฐ ๋ฐ์ดํฐ ํ๋ฆ ์ ํ ์ถ๋ก ์ ํตํฉํ๋ ๊ฒ์ ๋๋ค. ์ด์ ๊ฐ์ ์์คํ ์ ๋นํจ์จ์ ์ธ ์ปดํ์ผ์ด๋ ๋ฌด์์ ์ ๋ฌธํํด์ผ ํ๋์ง์ ๋ํ ๋ถํ์ค์ฑ์ผ๋ก ์ธํด ์ด๋ ค์์ ๊ฒช์ ์ ์์ต๋๋ค. ์ถฉ๋ถํ ๊ฐ๋ ฅํ ์ ํ ๊ธฐ๋ฐ ๋์คํจ์น๊ฐ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํจ์ ๋ณด์ฌ์ค๋๋ค. ๊ฒฐ๊ณผ ์ธ์ด์ธ Julia๋ ๊ธฐ์ ์ปดํจํ ์ฌ์ฉ์๊ฐ ๊ธฐ๋ํ๋ ๋ง์ ์์ฐ์ ์ธ ๊ธฐ๋ฅ์ Quine ์คํ์ผ "์ ๊ฑฐ๋ฅผ ํตํ ์ค๋ช "์ ๋ฌ์ฑํฉ๋๋ค._
๊ด์ค์ด ์ฌ์ฉํ ์ ์๋ ๊ทธ์ ๋ ผ๋ฌธ์ ์ธ์๋ ์ฌ๋ณธ์ด ์์ต๋๊น?
์๋ช ๋ ์ฌ๋ณธ ์ผ ์ ์์
๊ทธ๊ฒ์ด ๋ด๊ฐ ๋ฐ๋ผ๋ ๊ฒ์ ๋๋ค... 10-15๋ ์์ Ebay์์ ์ธ์ธ๋ ์ฌ๋ณธ์ ํ๋งคํ์ฌ ํฐ ๋์ ๋ฒ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ๊ณ ์ถ๋ค๊ณ ๋งํ ๊ณณ์ผ๋ก ๊ฐ๋ฉด... :์๋๋ค:)
ํ์ด์ ๋น๋๋ค, ์ ํ!
ํ์ด์ ๋น๋๋ค! ๋ด๊ฐ ๊ทธ ์ง์ญ์ ์์๋ค๋ฉด @ScottPJones๊ฐ ์ธ๊ธํ ํฌ๋ณด์ด ์ค ํ ๋ช ์ผ ๊ฒ์ ๋๋ค.
@ScottPJones :+1:
๋ค๋ฆฌ๋ฅผ ๋ถ๋ฌ๋จ๋ ค, ์ ํ!
ํ์ด์ ๋น๋๋ค, ์ ํ!
ํ์ด์ ๋น๋๋ค! @JeffBezanson
@JeffBezanson ํ์ด์ ๋น๋๋ค!!
์๋ฆฌ๋ฅผ ์ก์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
ํ์ด์ ๋น๋๋ค
๋๋ ๊ทธ๊ฐ 10-250์ ์์ฝํ์ด์ผ ํ๋ค๊ณ ๊ทธ์๊ฒ ๋งํ๋ค!
๋ด iPhone์์ ๋ณด๋ธ
2015๋ 5์ 13์ผ ์ค์ 11์ 53๋ถ์ Yichao Yu [email protected] ์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
@JeffBezanson ํ์ด์ ๋น๋๋ค!!
์๋ฆฌ๋ฅผ ์ก์ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ํ์ ํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
ํ์ด์ ๋น๋๋ค!
๊ฐ๊ฒ!
์ด ์ข๊ฒ๋ ๋๋ ์๋ฆฌ์ ์์ ์ ์์ ๋งํผ ์ผ์ฐ ๋ค์ด๊ฐ๊ณ ... ๋ด ๋ง์ด ๋ง์๋ค.
์ถํํฉ๋๋ค
๊ฒฐ์ ๋.
์์ง ์ ํํ์ง ์์ ํ์ธ๋์ด ํ๋ ์์ต๋๋ค. ๋ ๋์ ์์ ์ ์ป์.
:shipit: :tropical_drink: :๋งฅ์ฃผ: :์นตํ ์ผ: :ํ๋ค: !
:์์ง์๊ฐ๋ฝ:
๋ฒ ์์จ ๋ฐ์ฌ๋ ์ถํํฉ๋๋ค!
์ถํํฉ๋๋ค, ์ ํ!
+1
๋ธ๋ผ๋ณด
๋ง์ง๋ง ํ์ธ๋์ ์ด์ ์ผํฐํค ๋ฒ๋ฒ ์์คํค๋ก ์ฑ์์ก์ต๋๋ค.
์ถํํฉ๋๋ค ์ ํ!
2015๋
5์ 13์ผ ์์์ผ ์คํ 1:44 Mike Nolta [email protected]
์ผ๋ค:
+1
โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/JuliaLang/julia/issues/8839#issuecomment -101772806.
์ถํํฉ๋๋ค!
์ถํํฉ๋๋ค ์ ํ! :๋งฅ์ฃผ: :๋งฅ์ฃผ: :์ค๋ง์ผ:
์ด๊ฒ์ ํ๋ฅญํฉ๋๋ค! ์ถํํฉ๋๋ค, ์ ํ. :๋ถ๊ฝ:
์ข์ ์์. ์ถํํฉ๋๋ค, ์ ํ!
์ถํํฉ๋๋ค!
์ถํ ํด์
์ ์ ์ ํ ์ถํํฉ๋๋ค!
์ถํํฉ๋๋ค, ๋ฒ ์์จ ๋ฐ์ฌ๋!
์ฌ์ง์ ์ฌ๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. @ScottPJones. @jiahao , ์ฌ์ง๋ ์ข ์๋ ๊ฒ ๊ฐ์๋ฐ์?
์ถํํฉ๋๋ค ์ ํ. ์ด PHD๋ก ๋๋ ๋น์ ์ ์์ ์ ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์๊ฒ ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค. ๊ทธ๊ฒ์ ๊ณผํ ์ปดํจํ ์ ์์ฒญ๋ ์ํฅ์ ๋ฏธ์น๊ณ ์์ ๊ฒ์ด๋ฉฐ ์ด๋ฏธ ์ํฅ์ ๋ฏธ์น๊ณ ์์ต๋๋ค! ๋ฐ์์!
์ถํํฉ๋๋ค.
์์ฒญ๋!
์ถํํฉ๋๋ค ์ ํ!!
ํ๋ฅญํฉ๋๋ค, ์ถํํฉ๋๋ค!!
๋ฒ ์์จ ๋ฐ์ฌ๋ ์ถํํฉ๋๋ค!
์ดํด๋ณด๊ณ ์ถ์ ์ฌ๋๋ค์ ์ํ ๋ ผ๋ฌธ:
https://github.com/JeffBezanson/phdthesis/blob/master/main.pdf
์ถํ ํด์!
์ถํํฉ๋๋ค!
์ถํํฉ๋๋ค!
์ถํํฉ๋๋ค:+1:
GitHub์์ ๋ด ๋ชจ๋ ์ฌ์ง์ ํ์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ ์ด์ ๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ฌ๊ธฐ ์์ต๋๋ค.
์ด์ ํ๋ง์ ์์: http://youtu.be/hGpLOZX6CEY
Aleph-zero ์ถํํฉ๋๋ค, ์ ํ! ์์ ํ์ ๊ณ์๋ค๋ฉด ์ถํ ์๋ฃ๋ฅผ ์ฌ ๋๋ฆฌ๊ฒ ์ต๋๋ค. :)
์ถํํฉ๋๋ค ์ ํ. ์ปค๋ฎค๋ํฐ๋ก์ ๊ทํ์ ์์ ์ ์ถํํ๊ฒ ๋์ด ๋งค์ฐ ๊ธฐ๋ถ์ด ์ข์ต๋๋ค.
์ถํํฉ๋๋ค!
@jiahao , ๊ฐ์ฌ์ ํ์ด์ง์ ๋ํ ๋ณด์ถฉ ์๋ฃ ๋ก Julia์ ์ต์ ์ธ๊ณ๋ฅผ ๋ค์ ์คํํ ๊ฐ์น๊ฐ ์์ต๋๋ค. :)
๋ชจ๋ ๊ฐ์ฌํฉ๋๋ค.
๋ถํํ๋ ๋ด ๋ ผ๋ฌธ์ ์ค์ ๋ก ์๋ฃ๋์ง ์์์ง๋ง ๊ณง ์ด๋ฃจ์ด์ง๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ช ์ฅ์ ์ฌ์ง์ด ๋ ์์ต๋๋ค. ๊นจ์ด๋ ํ์ Jeff์๊ฒ ๋ณด๋ด๊ฒ ์ต๋๋ค(๊ทธ์ ์ด๋จธ๋, ์์ฃผ ์ข์ ์ฌ์ฑ์ ์ํด!) _Dr._ Bezanson์ ์ํ๋ค๋ฉด ์ฌ๊ธฐ์ ์ฌ์ง์ ๊ฒ์ํ ์ ์์ต๋๋ค...
์ ๋๋ฌ์ด??? Gerry๊ฐ ๊ทธ ๋น์ด๋จน์ "๊ตฌ๋ฌธ"์ ๋ชจ๋ ์ ๊ฑฐํ๊ณ s-ํํ์์ผ๋ก ์์ฑํ๊ฒ ํ๋ผ๊ณ ์์ฒญํ์ต๋๊น?
@JeffBezanson ์ด Mac์ ์ฌ์ฉํ๋ ๋ชจ์ต์ ๋ด๊ฐ ์์ํ ์ฌ์ง์ด ์๋๋๋ค!
์ผ!
์ถํํฉ๋๋ค
์ด ์ฐ๋ชป์ ๋ชจ๋ ํฌ ์ฌ๋ฌ๋ถ ์๊ณ ํ์ จ์ต๋๋ค.
์ ๋๋ฌ์ด??? Gerry๊ฐ ๊ทธ ๋น์ด๋จน์ "๊ตฌ๋ฌธ"์ ๋ชจ๋ ์ ๊ฑฐํ๊ณ s-ํํ์์ผ๋ก ์์ฑํ๊ฒ ํ๋ผ๊ณ ์์ฒญํ์ต๋๊น?
๋๊ฐ ๋๋์ด! ๋๋ด์ด ์๋. ๊ทธ๋ฌ๋ ๊ทธ๋ ์ ํ์ s-expr ๋ชจ๋์ ๋ง์กฑํ ๊ฒ์ ๋๋ค.
ํ๋ ์ ํ ์ด์ ์ด ๋๋ ํ ๊ทธ์ ์ด์ผ๊ธฐ๋ฅผ ๋๋์์ต๋๋ค... ๊ทธ๋ ๋น์ ์ ๋ด์ฉ์ ์ข์ํ์ง๋ง ๋ชจ๋ ๊ตฌ๋ฌธ์ ๋ํด์๋ ์ ํ ์ ๊ฒฝ ์ฐ์ง ์์์ต๋๋ค... ๋๋ฌด ๋ง์ ๋ถ๋ถ์ด ์์ต๋๋ค... ๊ทธ๋ ๋์๊ฒ Scheme ๋งค๋ด์ผ์ด ์ผ๋ง๋ ์์์ง๋ฅผ ์๊ธฐ์์ผฐ์ต๋๋ค :์๋๋ค: 6.001[์ฒซ ํ๊ธฐ์ ๋ฐฐ์ ๋ค]์ ๊ทธ๋ฅผ ์์ผฐ์ ๋, ์ฐ๋ฆฌ๋ MacLisp์์ ์์ Scheme ์ธํฐํ๋ฆฌํฐ๋ฅผ ๊ตฌํํด์ผ ํ์ต๋๋ค... Scheme์ด ๋๋ฌด ์์๊ธฐ ๋๋ฌธ์ ๊ฝค ํ ์ ์์์ต๋๋ค...
๊ทธ๋ฆฌ๊ณ ๋๋ ๋น์ ์ด ํ์ฌ๋ฅผ ์ํ ๊ทธ ๋ฒ๋ฒ ๋ณ์ผ๋ก ๊ฝค ๋นจ๋ฆฌ ๊ทธ๊ฒ์ ๋ น์ผ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค(๋จ์ ๊ฒ์ด ์๋ค๋ฉด! ;-))
์คํด ๋งค๋ด์ผ์ ๊ธธ์ด์ ๋ํด ์ด์ผ๊ธฐํ์๋ฉด ์ฌ๋ฏธ์์ต๋๋ค. ๋ง์ ๋ถ๋ถ์ด ์ซ์์ ๋์์ ๋ฌธ์ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฐ๋ฉด Julia์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์๋์ด ์์ต๋๋ค. Julia๋ ์ ์ฌ์ ์ผ๋ก scheme๋ณด๋ค ์์ ํต์ฌ ์ธ์ด์ผ ์ ์์ต๋๋ค(๋ฌผ๋ก LLVM ์ฌ์์ ์คํ ์ดํ๋งํ์ง ์๋ ํ).
์ฐฌ์ฑ์ด๋ ๋ฐ๋์ด๋ ๋ฌธ๋ฒ์ด ๋๋ฌด ๊ฐ์กฐ๋ฉ๋๋ค! ๋ํ http://www.schemers.org/Documents/Standards/R5RS/HTML/์ ์น์ 7.1์ ํ์ธํ์ญ์์ค. ์คํค๋ง ๊ตฌ๋ฌธ์ ์ฌ๋๋ค์ด ์๊ฐํ๋ ๊ฒ๋ณด๋ค ๋ ๋ณต์กํฉ๋๋ค!
Julia๋ ์ ์ฌ์ ์ผ๋ก scheme๋ณด๋ค ์์ ํต์ฌ ์ธ์ด์ผ ์ ์์ต๋๋ค(๋ฌผ๋ก LLVM ์ฌ์์ ์คํ ์ดํ๋งํ์ง ์๋ ํ).
์, Julia๋ ์ข์ ๋ผ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค!
์ด์ @sexpr
๋งคํฌ๋ก๋ฅผ ํํค์น ์๊ฐ์
๋๊น?
์กธ์ ์ ์ถํํ๊ณ Julia์ ํจ๊ป ๋ฌด์์ ํ๋์ง ์ถํํฉ๋๋ค!
:์ผ์ดํฌ: ์ถํํฉ๋๋ค!
@JeffBezanson์ ์ถํํฉ๋๋ค!
์ถํํฉ๋๋ค :)
:+1:
@์๋ ! ์ค๋๋ง ์ด๋ค์!
๊ทธ๋ฆฌ์์ ์ฌ๋ฌ๋ถ :)
์ถํํฉ๋๋ค!
์ง๋ฌธ: PDF์๋ ToC์ ๋งํฌ๋ pdf ๋ฉํ๋ฐ์ดํฐ์ ํ์ ๊ฐ๋ฅํ ์์ธ์ด ์์ต๋๋ค.
MIT๋ฅผ ์กธ์
ํ ์ปดํ์ผ๋ฌ ์์ฑ์๊ฐ ์๋ฌธ์ \usepackage{hyperref}๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ ๊ทธ๋ ๊ฒ ์ด๋ ค์ด๊ฐ์?
๊ทธ๋ฅ ์ง๋์น์ง ์๊ณ ์ ์ฒด๋ฅผ ์ฝ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ;-)
ํ์ง๋ง ์, hyperref๋ ์ด๊ฒ์ ํจ์ฌ ๋ ์ฝ๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค.
๋งํฌ๋ฅผ ์ถ๊ฐํ๋ฉด ์ ์ฒด ๋ด์ฉ์ ์ฝ์ ๊ฒ์ ์ฝ์ํฉ๋๋ค :P
์ถํํฉ๋๋ค. ์์ ๊ฐ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
๋ฒ ์์จ ๋ฐ์ฌ๋, ์ถํํฉ๋๋ค!
@nicola-gigante, ํ ๋ฆฌํ์คํธ๋ฅผ ํ ์ ์์ต๋๋ค: ์ค๋ง์ผ:.
์ต์ฐ์ ๋ ผ๋ฌธ์์ ์ํด ๋ก๋นํ ์ ์์ต๋๊น?
์ถํํด!!!
@jpfairbanks - ์ข์ ์๊ฐ์ ๋๋ค! ๊ทธ์ ๋ ผ๋ฌธ ์ง๋๊ต์๊ฐ ์ ์ถํด์ผ ํ์ง๋ง... ํ์คํฐ ์จ๋ฐ ์๋ธ๋ง, ์ ์๊ฐ์๋...
์, ๊ณ ๋ฌธ์ ์ถ์ฒ๊ณผ 5๊ฐ์ ์ง์ ์์ ์ด ํ์ํฉ๋๋ค. ๊ธฐ๋ฐ์ผ๋ก
์ด ๋ฌธ์ ๋ ์ ์ด๋ 5๋ช
์ด ๊ทธ๊ฐ ๊ทธ๋ด ์๊ฒฉ์ด ์๋ค๊ณ ์๊ฐํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ง์์ 5๊ธ์๋ก ์ ํ๋๋์? ๋ํ, ๊ทธ๊ฐ ๊ทธ๋ด ์๊ฒฉ์ด ์๋ค๊ณ ์๊ฐํ๋ ์ฌ๋๋ค์ ์ค์ ์๋ ์ ์ด๋ ๋ช ์๋ฆฟ์ ์ด์ ๋ ๋ง์ต๋๋ค!
@JeffBezanson : ์ถํํฉ๋๋ค!
@alanedelman : @jpfairbanks ๊ฐ ์ข์ ์ง์ ์ ํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. Jeff๋ ACM ๋ฐ์ฌ ํ์ ๋ ผ๋ฌธ ์ ํ๋ณด๋ก ์ง๋ช ๋์ด์ผ ํฉ๋๋ค.
@JeffBezanson ์๊ณ ํ๊ณ ๊ทธ๋ด ์๊ฒฉ์ด ์์ต๋๋ค!
@ScottPJones "๋ํ ๋ ผ๋ฌธ์ ์ํฅ์ ๋ํ ์ถ๊ฐ ํต์ฐฐ๋ ฅ์ด๋ ์ฆ๊ฑฐ๋ฅผ ์ ๊ณตํ ์ ์๋ ํด๋น ๋ถ์ผ ์ ๋ฌธ๊ฐ์ ์ง์ ์์ ์ด ์ต์ 3๊ฐ์์ 5๊ฐ ์ดํ๋ก ํฌํจ๋์ด์ผ ํฉ๋๋ค."
์๋ง๋ Gerry๊ฐ ๊ทธ์๊ฒ ํ๋๋ฅผ ์ธ ๊ฒ์ ๋๋ค(๊ทธ๊ฐ s-expr ๋ชจ๋๋ฅผ ์ถ๊ฐํ ํ!).
Hacker News ์ฒซ ํ์ด์ง :-) ์ถํํฉ๋๋ค, Jeff.
@nicola-gigante ๋ง์ต๋๋ค. ํ์ดํผ ์ฐธ์กฐ๋ฅผ ์ถ๊ฐํ๊ฒ ์ต๋๋ค.
๋ค์ ํ ๋ฒ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ชจ๋ ๊ฐ์ฌ๊ฐ ์ต๊ณ ์ ์์ ๋๋ค.
@jiahao ๋ธ๋ผ์ฐ์ ๊ฐ ์ ๊ฒฝ ์ฐ์ง ์๋ EXIF โโํ์ ๋ฐ์ดํฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ. Chrome์ ์ฌ์ง์ด ์์ฒด ์ฐฝ์ธ ๊ฒฝ์ฐ์๋ง EXIF โโ๋ฐ์ดํฐ์ ๊ด์ฌ์ ๊ฐ์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ ๋ณด๋ ค๋ฉด ๋ง์ฐ์ค ์ค๋ฅธ์ชฝ ๋ฒํผ์ ํด๋ฆญํ๊ณ "์ ํญ์์ ์ด๊ธฐ"๋ฅผ ํด๋ฆญํ์ญ์์ค.
EXIF ๋ฉํ๋ฐ์ดํฐ ์คํธ๋ฆฌํผ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ ๊ฑฐํ๊ณ "์ ์ ํ" ๋ฐฉ์์ผ๋ก ํ์ ํ ์ ์์ต๋๋ค.
ACM ๋ ผ๋ฌธ์ ํ๋ณด์ +1.
์ถ์ฒ ๋ง๊ฐ์ผ์ 2015๋ 10์ 31์ผ์ ๋๋ค.
http://awards.acm.org/doctoral_dissertation/nominations.cfm
๋๋ ACM์ด ๊ทธ๋ค์ ๋ํ ์ ์๊ถ ์๋์ ๋ ์ ์ถํ๊ถ์ ์๊ตฌํ๋ค๋ ๊ฒ์ด ๋ง์์ ๋ค์ง ์์ต๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ์ฌ์ ํ ๊ฐ์น ์๊ณ ๊ถ์ ์์ต๋๋ค.
์ถํ ํด์!
๋
์ ์ถํ๊ถ!!?! ๋๋ ์ธ์ธ ์ฌ๋ณธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค (๋๋ ๋ ... 10-15 ๋
์์ e-bay์์ ํ๋งคํ๊ธฐ ์ํด ํ๋๊ฐ ํ์ํ๊ณ , ๋ ์์ ์ ์ํด ๋ณด๊ดํด์ผ ํ ๋ ํ๋๊ฐ ํ์ํฉ๋๋ค :์๊ณ ์์ต๋๋ค:)... ACM!
(๋น์ฐํ ACM์ ๋์งํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํ์๋ค์๊ฒ ์ ๊ณต๋๋ค๋ ์๋ฏธ์ผ ์๋ ์์ต๋๋ค.)
๋
ผ๋ฌธ์ด ๋์๊ฒ ์ ๋ฌ๋๋ฉด ์๋ช
ํ๊ธฐ ์ํด ๋ชจ๋ ์๋๊ฐ ์์ต๋๋ค.
๋ค์ํ ์์ ๊ฒฝ๋ ฅ์ ๋น๋๋ ๋
ผ๋ฌธ :-)
2015๋
5์ 17์ผ ์ผ์์ผ ์ค์ 8:49, Scott P. Jones ์๋ฆผ @github.com
์ผ๋ค:
๋ ์ ์ถํ๊ถ!!?! ๋๋ ์ธ์ธ ์ฌ๋ณธ์ dibs๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค (๋๋
๋... ํ๋๋ 10-15๋ ์์ e-bay์์ ํ๋งคํ๊ณ ๋ค๋ฅธ ํ๋๋ ๋ ์์ ์ ์ํด ๋ณด๊ดํด์ผ ํฉ๋๋ค. [์ด๋ฏธ์ง:
:์์ผ๋ฉด์:])... ACM์ ์ํด ๊ฐ๋์ด์ง๊ธฐ ์ ์ ์ก์์ผ ํฉ๋๋ค!
(๋ฌผ๋ก ACM์์ ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ์ผ ์ ์์ต๋๋ค.
ํ์์ฉ ๋์งํธ ๋์๊ด)โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
https://github.com/JuliaLang/julia/issues/8839#issuecomment -102801616.
@JeffBezanson์ ๋๊ธ์ด ์์ต๋๋ค... ์ ๋ ๊ทธ๊ฐ ์ถํํ๊ณ ์๊ณ (๋ง์ง๋ง ์์๋ฅผ ๋ ํ์ธํ๊ณ ์์) s-expr ๋ชจ๋๊ฐ ์๋ํ ๋๊น์ง GJS๊ฐ ๋ฐฉ ์ด๋๊ฐ์ ๊ฐํ ์ ์ด ์์์ผ๋ฉด ํฉ๋๋ค!
์ถํํฉ๋๋ค!
์ถํํฉ๋๋ค, @JeffBezanson!
(๋ค๋ฆ๊ฒ) ์ถํํฉ๋๋ค!
์ ๋ฐ์ดํธ: ๋ฐฉ๊ธ ๋ฌธ์๋ฅผ ์ ์ถํ์ต๋๋ค. ์ ์ถ๋ ๋ฒ์ ์ https://github.com/JeffBezanson/phdthesis/tree/876be73a5aab9b034fac3eb9ea9d8f96713f786f ์ ๋๋ค.
์ฌ๋ฌ๋ชจ๋ก ๋ถ์กฑํ๋ค๊ณ ํ์ ํฉ๋๋ค. ์ค ๊ธ์. ๊ทธ๊ณณ์ ์ ๋ง ๋์ ์ผ์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ฉ์ง. ์ง์ ์ผ๋ก ๋ฐ์ฌ ํ์๋ฅผ ๋ง์น์ ๊ฒ์ ์ถํ๋๋ฆฝ๋๋ค.
์ถํํฉ๋๋ค, ์ ํ! ๋๋จํ ์ฑ์ทจ์ ๋๋ค. ๋๋ ๋น์ ์ด ๊ทธ๊ฒ์ด ๋๋ ๊ฒ์ ๊ธฐ๋ปํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
๋๋ ์ด๋ฏธ ๋น์ ์ ๋ ผ๋ฌธ์ด Julia์ ๋ฌธ์์์ ๋ช ๊ฐ์ง ํ์ ์ ์ฑ์ฐ๋ ๊ฒ์ ๋ฐ๊ฒฌํ๊ธฐ ๋๋ฌธ์ ๋ถ๋ช ํ ๋งค์ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๋ฌธ์์๋ ๊ฒฐํจ์ด ์์ต๋๋ค. ๋๋จธ์ง ์ฐ๋ฆฌ๋ ๊ฐ์ ์ ๊น์ ์ธ์์ ๋ฐ์์ต๋๋ค! ์ถํ ํด์!
๊ทธ๋ฆฌ๊ณ ๊ณต์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ฏง์ฏง! ๋ฐฉ์ด์ ๋ ผ๋ฌธ, ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ด ์๋ฏธํ๊ณ ๋ํํ๋ ๋ค๋ฅธ ๋ชจ๋ ์์ ์ ๋ง์น์ ๊ฒ์ ์ถํํฉ๋๋ค. ๋น์ ์ด ์ฑ์ทจํ ๋ชจ๋ ๊ฒ์ ์ธ์ ํ๊ธฐ ์ํด ์ด ์ด์ ํ๋ฅผ ๊ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋น์ ์ด ์๋์ค๋ฌ์ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!
@JeffBezanson ๋๋ ๋น์ ์ด ์ง์ ํ๊ณ ์ถํํ๊ธฐ ์ํด ๋ฉฐ์น ์ ํด๊ฐ๋ฅผ ๋ผ ๊ณํ์ด๊ฑฐ๋ ์๋ง๋ ์ ํ ์์คํ ์ ๊ฒ ๋ฑ์ผ๋ก ์ถํํ ๊ณํ์ด๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. :-)
์๋ก์ด pdf์ hyperref๊ฐ ์๋ค๋ ๊ฒ์ ์ข์ ์ผ์ ๋๋ค. ํ์ํ๋ ค๋ ์ฌ๋๋ค์ ์ํ ๊ฒ์ ๋๋ค. ์ค๋ฆฌ์ ์ถํ๋ฌผ ๋ชฉ๋ก์๋ ์ฌ๋ ค์ผ ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๋ฌธ์ ๋ฅผ ๋ก์ปฌ์์ ์ฌํํ ์ ์์ต๋๋ค. MIT ์ ์ฉ์ธ๊ฐ์?