Juliaã®ã³ã¢äœè ã®1人ã§ãã@JeffBezansonã¯ãåé¡ã®ããéçºè ã«ãªããŸããã 圌ã¯ãçæ³çã«ã¯2015幎1æãŸã§ã«MITãåæ¥ããå¿ èŠããããŸããäŸåé¢ä¿ïŒ
ããã¯ãæŠåšãå£ããªãããã«ãããžã¥ãªã¢ãããžã§ã¯ãã®é·æçãªå®è¡å¯èœæ§ãä¿èšŒããããã®åªå 課é¡ã§ãã
ccïŒ @ 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
ãããããŸããã
ïŒå ã«é²ãã§ãè«æã®ãã©ã³ããéããŠãã ããããžã§ããïŒ
ãŸããæåŸã®ã¿ã¹ã¯ã®é åºã¯èª€è§£ãæãå¯èœæ§ããããŸãã å®éã«ã¯ãããã»ã¹å šäœã§é »ç¹ã«ç¹°ãè¿ãããŸãã
*ãã§ã«åçºããŠããŸã
_Closeissue_ã»ã¬ã¢ããŒã«åºåžããã®ã楜ãã¿ã«ããŠããŸãã
ãã®åé¡ãããŒã«ã«ã§åçŸããããšã¯ã§ããŸããã ããã¯MITåºæã§ããïŒ
ãžã¥ãªã¢ã®ã³ã¢èè
ã®1人ã§ãã@JeffBezansonã¯ãåé¡ã®ããéçºè
ã¢ã«ãããã¯ã«ãªããŸãã
ããã¯PHDè«æã®githubããŒãžã§ã³ã§ããïŒ ãžã§ãã¯åœŒã®ææ¡ã§PRãéããªããã°ãªãããå§å¡äŒã¯å䜵ãããã©ããã決å®ããŸã...
+ããã®ã¹ããŒãã£ãŒãªè§£æ±ºã®ããã®InfïŒ
æ°ãæåã«IPythonãªããžããªã§åãåé¡ãçºçããŸãããã32æ¥åã«ä¿®æ£ããããšæããŸãã
ã³ãŒããŒãé¢åãªäºååŠçãå岩æ©ã«ããèšç»ã®åå£å Žã§ã®å€æŽãå«ãŸããŠãããšç¢ºä¿¡ããŠããŸãã
幞éã ïŒ
æŽæ°ïŒãžã§ãã¯åœŒã®è«æå§å¡äŒãšäŒããç§ãã¡ã«å€§ãŸããªæŠèŠãæããŠãããŸããã
é²æç¶æ³ãèããŠããããã§ãïŒ
ãããã git log --date=short --all --since=22.days.ago --author="Jeff Bezanson"
ã¯ã圌ãè«æãæžãããã®æéãããã®ãââçåã«æããŸãã ãããã圌ã¯ã¹ãŒããŒããŒããŒã§ãã å®éããããã¹ã¯ã©ããããŸããç§ãã¡ã¯çã圌ãã¹ãŒããŒããŒããŒã§ããããšãç¥ã£ãŠããã®ã§ãæ°ã«ããªãã§ãã ããã
juliatypes.jlãå«ãã³ãããã¯ãçŽæ¥é¢é£ããè«æäœæ¥ã§ããJuliaã®åã·ã¹ãã ã説æããããã®ç§ãã¡ã®è©Šã¿ãèšé²ããŠããŸãã
åã·ã¹ãã ã®ä»äºã¯ãã§ã«ããã€ãã®ç¥çµãæã£ãŠããããã§ãïŒ https ïŒ//twitter.com/plt_hulk/status/535045242920378369
ç§ã¯ééã£ãŠãããããããŸããããããããžã§ãã®ä»äºã«çŽæ¥åå¿ããŠããã®ã§ã¯ãªãããšçã£ãŠããŸãã ãšã¯ãããéœæ°ãªãã€ãŒãã
@jiahao ãç§ã®ã³ã¡ã³ãã¯ã»ãšãã©ãåè«ã§ãã---ç§ã¯ãã®ããšã«ã€ããŠã¡ãã£ãšçåã«æããŸããã ç§ã¯ããã¬ãŒã³ããŒã·ã§ã³ã®ããã«äœãã磚ããŠãããšãã«ãå€ãã®ã³ããããããåŸåããããŸãã
@timholyãŠãŒã¢ã¢ã泚ç®ãããŸããã :)
ç§ãã¡ã®å°å ã®çè«ã®ååè ã§ãã@jeanqasaurãäœæãããã€ãã¿ãŒã«æçš¿ããçŽ æµãªãã°ãªããã®ãªããŒãžã¥ã¯èšããŸã§ããããŸããã
ãã¿ã€ãã®è£åããã«ã¯ãããªã³ã°ããããŸããã
ããã¯ããªãé¢çœãã§ãã
倧奜ãã§ãïŒ
å©ããæ±ããïŒ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ã®ãããªããäŒçµ±çãªãªããžã§ã¯ãæåèšèªã§è¡ãã§ããããïŒ
2014幎12æ19æ¥éææ¥ååŸ1æ39åããžã§ã³ãã€ã«ãºãã¯ã€ã[email protected]
æžããŸããïŒ
Distributionsããã±ãŒãžã¯æ¬åœã«è€æ°ã®ãã£ã¹ãããã®ããã«èŠãããšæããŸã
䜿ããã randïŒGammaïŒ1ã1ïŒã5ã5ïŒvs randïŒNormalïŒ0ã1ïŒã
3ïŒããã©ãŒãã³ã¹ã³ã¹ããªãã§è¡šçŸåºŠãå€§å¹ ã«åäžããŸãã
å€éãã£ã¹ããããâ
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/JuliaLang/julia/issues/8839#issuecomment-67678367 ã
Okã ããããåæçµæã䜿çšããŠKLãã€ããŒãžã§ã³ã¹ãèšç®ããäŸïŒ kl(Normal(0, 1), Normal(0, 1))
ãškl(Normal(0, 1), Gamma(1, 1))
ïŒã«çœ®ãæããŸãã
ãŸããïŒ8235ã®æåã®æçš¿ã§ã¯ãã¹ããŒãžã³ã°ãããé¢æ°ããªãå Žåã®ç掻ã«ã€ããŠã圹ç«ã€å¯èœæ§ã®ããçµ±èšãããã€ããããŸããã æã¡åž°ãã®ã¡ãã»ãŒãžïŒãã£ã¡ã³ã·ã§ã³8ãä»ããŠãã¹ãŠã®ã¡ãœãããçæãããšã5000ãè¶ ããåå¥ã®ã¡ãœãããçæããã4å以äžã®è§£æãšççž®æéãå¿ èŠã«ãªããŸããïŒã€ãŸãããžã¥ãªã¢ã®ã³ã³ãã€ã«äžã«4åã®é 延ãçºçããŸããïŒã æ¯èŒãããšã段éçé¢æ°ã®å®è£ ã¯äžç¬ã§èªã¿èŸŒãŸãããã¡ãã8次å ãè¶ ããããšãã§ããŸãã
ã·ã³ã°ã«ãã£ã¹ããããšæ¯èŒããŠãããã§ãä»ã®ãªããžã§ã¯ãæåèšèªãé¢æ°ãšã¡ãœãããšããŠèª¬æãããã®ã®çµ±äžã瀺ããŠããŸãã Pythonã®sortedïŒaïŒãša.sortïŒïŒã察æ¯ããããšãã§ããŸãã ãåŸæ¥ã®ããªããžã§ã¯ãæåèšèªãšæ¯èŒãããšãé¢æ°ãã¯ã©ã¹ã«ãé¢é£ä»ãããããããšã®æå³ãåçã«å€ãããŸãã
ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ã¿ã€ãã§ãã£ã¹ãããã§ãããããéçå€æ°ãšã€ã³ã¹ã¿ã³ã¹å€æ°ã®å¿ èŠæ§ãã©ã®ããã«çœ®ãæããããããææã§ããŸãã ã³ã³ãã¥ãŒã¿ãŒã«ãã©ãçãããšãã§ããã°ãæè¿ã®IRCã®äŒè©±ããããã«ã¢ã€ãã¢ãæµ®ãã¶ãããããŸããã
fmap
ã®å®è£
ããããŸãã ããã¯ããã€ãã®ã¢ã¬ã€ããã©ããŒã¹ãã
èŠçŽ ã®åã»ããã«é¢æ°ãé©çšããŸãã ãã®å®è£
ã¯å®éã«ã¯
é
åã®æ°ã¯ä»»æã§ããå¯èœæ§ããããããéåžžã«äœéã§ãã ããã䟿å©ã«ããããã«ã
ç§ã¯ãããããŸããŸãªæ°ã®å°é家ã«æåã§äœæããŸãã
åŒæ°yss
ã ç§ã¯ãã€ããã®ããã®æ®µéçãªé¢æ°ãæžããããšæã£ãŠããŸããã
ãããããŸã ããããŠããŸããã
段éçãªé¢æ°ã¯ãç¹ã«map
åŒã³åºããè©äŸ¡ããå¿
èŠããããŸã
f
ãžã®åŒæ°ãçæããŸãã
-erik
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 PMãã¹ãã£ãŒãã³G.ãžã§ã³ãœã³<
[email protected]>ã¯æ¬¡ã®ããã«æžããŠããŸãïŒ
å©ããæ±ããïŒãžã§ãã¯è€æ°ãæ«é²ããçŽ æŽãããäŸãæ¢ããŠããŸã
ãã£ã¹ãããïŒãããŠå€åã¹ããŒãžã³ã°ãããé¢æ°ïŒã
ãããã®æ©èœã®ãªãèšèªã§ã¯ãããé£ãã/ããé ããªããŸãããã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/JuliaLang/julia/issues/8839#issuecomment-67671331 ã
ãšãªãã¯ã»ã·ã¥ããã¿ãŒ[email protected]
http://www.perimeterinstitute.ca/personal/eschnetter/
ç³ãèš³ãããŸããããç§ã®ã³ãŒãã®é¢æ°ã·ã°ããã£ã§ã®eltype(f)
ã®åŒã³åºãã¯ç¡èŠããŠãã ããã
ããã¯éæšæºã§ãã
-erik
2014幎12æ19æ¥éææ¥ååŸ3æ8åãErik Schnetter [email protected]
æžããŸããïŒ
fmap
ã®å®è£ ããããŸãã ããã¯ããã€ãã®ã¢ã¬ã€ããã©ããŒã¹ãã
èŠçŽ ã®åã»ããã«é¢æ°ãé©çšããŸãã ãã®å®è£ ã¯å®éã«ã¯
é åã®æ°ã¯ä»»æã§ããå¯èœæ§ããããããéåžžã«äœéã§ãã ããã䟿å©ã«ããããã«ã
ç§ã¯ãããããŸããŸãªæ°ã®å°é家ã«æåã§äœæããŸãã
åŒæ°yss
ã ç§ã¯ãã€ããã®ããã®æ®µéçãªé¢æ°ãæžããããšæã£ãŠããŸããã
ãããããŸã ããããŠããŸããã段éçãªé¢æ°ã¯ãç¹ã«
map
åŒã³åºããè©äŸ¡ããå¿ èŠããããŸã
f
ãžã®åŒæ°ãçæããŸãã-erik
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 PMãã¹ãã£ãŒãã³G.ãžã§ã³ãœã³<
[email protected]>ã¯æ¬¡ã®ããã«æžããŠããŸãïŒå©ããæ±ããïŒãžã§ãã¯è€æ°ãæ«é²ããçŽ æŽãããäŸãæ¢ããŠããŸã
ãã£ã¹ãããïŒãããŠå€åã¹ããŒãžã³ã°ãããé¢æ°ïŒã
ãããã®æ©èœã®ãªãèšèªã§ã¯ãããé£ãã/ããé ããªããŸãããã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ãããã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ãããã¡ãŒäœçœ®ãšãç©Žã®ãªã䟿å©ãªã€ã³ããã¯ã¹äœæã®äž¡æ¹ãå¯èœã«ããææ¡ããããå¿
èŠãªãšãã«äŸ¿å©ãªæŒç®ãå®è¡ã§ããŸãã æ£èŠè¡šçŸãšæ€çŽ¢ã¯ã©ãããããå
éšã€ã³ããã¯ã¹ãè¿ããŸããã s[2]
ã¯ãæåã®æåã®ãšã³ã³ãŒãã«äœ¿çšããããã€ãæ°ã«é¢ä¿ãªãã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 ++ããçŽ1KJuliaã«ãªããŸãã åæã®ããã©ãŒãã³ã¹ãã³ãããŒã¯ã¯ããã€ãã£ãC ++ã®2å匱ã§ããããšã瀺ããŠããŸãã
æŒç®åïŒ+-* /ãIntãFloatïŒããæ°å€åºåãã©ãŒããããŸã§ãèšèªèªäœã§printfã®å®è£ ãèŠæ±ã§ããlibcããŒãžã§ã³ã®ããããªããŒãžã³å ã§ãã³ãããŒã¯ã§ããèšèªã¯ããã€ãããŸããïŒ å€åC ++ïŒ Cã¯ããã䞻匵ããããšããã§ããŸããïŒæŒç®åã®ãªãŒããŒããŒãã¯ãããŸããïŒã
Python / MATLAB /ãªã©ã ããã®ãããã䞻匵ããããšãã§ãããããããŸããããMATLABã§æååæŒç®åã䜿çšããããšããããšããããŸããïŒ
ããã¯éåžžã«èå³æ·±ãè°è«ã§ãããããã€ãã®ãã€ã³ããè¿œå ããããšæããŸãã
å€éãã£ã¹ããããã©ãã»ã©å¹æçã§ãããã説æããã®ãã©ãã»ã©é£ãããã¯ãããèªäœéåžžã«èå³æ·±ããã®ã§ãã
ç§ãã¡ãä»åãããŒãžã«ããããšãããããæããŸãã ã¯ããç§ãã¡ã®æ°ããSubArrayã¯ãã¹ãã©ã€ãã«äŸåããŠããŸããããŸããç·åœ¢ã€ã³ããã¯ã¹ãå¿
èŠãšããŸããïŒãã ãã䜿çšã§ããå¹ççã§ããå Žåã¯ããã©ã«ãã§äœ¿çšã§ããŸãïŒã ãããã£ãŠããããã¯AbstractArrayã«å¯ŸããŠå¹ççã«æ©èœãããéã¹ãã©ã€ããïŒ Vector{Int}
ã€ã³ããã¯ã¹ïŒãã¥ãŒããµããŒãããŸãã
æ確ã«ããããã«ãç§ã¯æ°ãããµãã¢ã¬ã€ããå€éãã£ã¹ãããã§ã¯ãªããäž»ã«æ®µéçãªé¢æ°ã®äŸãšããŠæ瀺ããŸããã ãšã¯èšããã®ã®ãçŸåšã®ã¹ããŒã ã¯ãå€éãã£ã¹ããããªãã§æ§ç¯ã¹ãããã§åŽ©å£ããŸãã slice(::AbstractArray, ::UnitRange{Int}, ::Int, ::Vector{Int})
ãslice(::AbstractArray, ::Int, ::UnitRange{Int}, ::UnitRange{Int})
ãªã©ã«å¯ŸããŠå®å
šã«ç°ãªãã³ã³ã¹ãã©ã¯ã¿ãŒã¡ãœãããåŒã³åºããŸãããããã®ã³ã³ã¹ãã©ã¯ã¿ãŒã¯æ®µéçãªé¢æ°ã«ãã£ãŠçæãããŸãããã·ã¹ãã ãæ©èœããã«ã¯ãè€æ°ã®ãã£ã¹ããããå¿
èŠã§ãã
åå¥ã®é¢æ°ããªãå Žåãvarargsã³ã³ã¹ãã©ã¯ã¿ãŒã¯ãã€ã³ããã¯ã¹ã¿ãã«ã®ãšã³ããªã®ã«ãŒããåå®å®ã§ã¯ãªããšããäºå®ã«çŽé¢ããå¿ èŠããããŸããã«ãŒãå ã®åã ã®ã€ã³ããã¯ã¹ãåŠçããã«ã¯ãããããååä»ãã¹ã«ã©ãŒå€æ°ã«å²ãåœãŠãå¿ èŠãããããã®å€æ°ã¯æ¬¡ã®ããã«ãªããŸããå ¥åã¿ãã«ã¯æ£ããå ¥åã§ããŸãããæ£ããå ¥åãããªãããšãä¿èšŒãããŠããŸãã ãã¡ãããã¹ããŒãžã³ã°ãããé¢æ°ã¯ãã¯ããã«å€ãã®ããšãè¡ããŸããã»ãšãã©ãã¹ãŠã®ãé£ããã決å®---ãããã¹ã©ã€ã¹ããããã£ã¡ã³ã·ã§ã³ãšããŠããããããã®ãããããšãä¿æããã®ãããããŠãªããžã§ã¯ãã®å éšè¡šçŸã«ã©ã®ãããªåœ±é¿ããããŸããïŒ ---ã³ã³ãã€ã«æã«äœæã§ãããããã©ã³ã¿ã€ã ã³ã³ã¹ãã©ã¯ã¿ãŒãéåžžã«ç°¡åãªæäœã«æžããããšãã§ããŸãã ããŸããŸãç¹å®ã®äºçŽ°ãªæäœãå ¥åã¿ã€ãã®çµã¿åããããšã«ç°ãªãããããã®äºçŽ°ãªããšãå©çšããŠæ§ç¯ãé«éåããã«ã¯ãå ¥åã¿ã€ãã®çµã¿åããããšã«ã«ã¹ã¿ãã€ãºãããããŸããŸãªã¡ãœãããåŒã³åºãå¿ èŠããããŸãã ããããã¹ããŒãžã³ã°ãããé¢æ°ãšå€éãã£ã¹ãããã®äž¡æ¹ãå¿ èŠãªçç±ã§ãã
å人çã«ã¯ã段éçãªé¢æ°ãšè€æ°ã®ãã£ã¹ããããçµã¿åãããªããŠãããããŸã§è¡ã£ãŠããããšãå®è¡ã§ãããšã¯æããŸããããŸããjuliaã¯ãããããèšèªã®äžã§æãæè»ã§å¹ççãªé åãã¥ãŒãåããŠããå¯èœæ§ããããŸãã ããããç§ã¯ãã®åé¡ã«ã€ããŠå®éã«ç 究ãè¡ã£ããµããããŠããŸããã
ããã¯ãå ¬éçšã«SubArrayãäœæããå¿ èŠããããã©ããçåã«æããŸã---ããã«äœãæ°ãããã®ãããããã§ãã
@StefanKarpinski ïŒèªå·±æ¹å€çã«ããŸãããïŒãã¶ãç§ãã¡ã¯ãŸã ãããæžããŠããŸãããïŒ
@timholyå®éã«ã¯ãããã§2ã€ã®ããšãããããŸããã¹ããŒãžã³ã°ãããé¢æ°ïŒå®å šã«ã¯ç解ãããŠããªãããšãèªããå¿ èŠããããŸãïŒãšãJuliaãC ++ä»®æ³é¢æ°ãšãã³ãã¬ãŒããŠãããŒã¹ã«ã©ã®ããã«é©åãããïŒCïŒãšJavaã¯ããã§äŒŒãŠããŸãïŒã
C ++ã®æ¯èŒã§ã¯ãã¿ã€ãã³ã°ãåããã³ã³ãã€ã«æã®ããªã¢ãŒãã£ãºã ã«å°éã§ããããšãå®éšçã«èšŒæããããšã¯éåžžã«èå³æ·±ãã§ãããïŒããã¯ç§ãã¡ãè¡ããšç¢ºä¿¡ããŠããŸãïŒ
ç§ããã°ããã®éå®åŒåãããã£ããã1ã€ã®ããšã¯ãC ++ã®æŠå¿µïŒã©ã€ãïŒã«é¢ããŠJuliaã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é åãå®è£ ããå€ãã®ã·ã¹ãã ã¯ãæåã®æ°æ¬¡å ã«ç¹åããå®è£ ãæã£ãŠããããã以å€ã®å Žåã¯äžè¬çã«é ããã®ã«ãã©ãŒã«ããã¯ãããšæããŸãïŒãã ãæ€èšŒã¯ããŠããŸããïŒãæ°ããå®è£ ã®å Žåã¯ããã§ã¯ãããŸããã
ãã1ã€ã®é¢é£ããã±ãŒã¹ã¯ãå¹ççãªã¹ããŒã¹Ndã¹ãã¢ã®äœæã§ãïŒé åã¯äžè¬çãªç¹æ®ãªã±ãŒã¹ã§ãïŒã
ãã£ã ã
ã¯ãã確ãã«çµæã®ã¢ã»ã³ããªã³ãŒããèŠãã®ã¯çŽ æŽãããããŒã«ã§ãã ããããããã§ããããã¯ãïŒC ++å®è£ ã§ã¯ïŒä»®æ³é¢æ°ãèæ ®ã«å ¥ããå¿ èŠãããããã倧ããªã³ã³ããã¹ãã§æ¯èŒããå¿ èŠããããšæããŸãã
ç§ã®æšæž¬ã§ã¯ãããã»ã©é«émultiple dispatch
ã§ã¯ãããŸããããå®è¡æã«ã€ã³ã©ã€ã³åã§ãããããä»®æ³é¢æ°ïŒãžã§ããªãã¯é¢æ°ïŒãé¢æ°åŒã³åºãã®éæ¥åç
§ãªãã§å¹ççãªåœä»€ã«å€æã§ããŸãã
ãããæ¬åœã®å ŽåïŒç§ãééã£ãŠããå Žåã¯èšæ£ããŠãã ãã@JeffBezanson @vtjnash @stevengj @timholy ïŒ multiple dispatch
ã®åæ°ã¯ããžã¥ãªã¢ãããã»ã©éãããŒã€ã³ã°ããçç±ã§ã¯ãããŸããããç¹å®ã®ã³ãŒããå®åŒåã§ãããšãããã¡ããšããåŽé¢ã«åœ±é¿ããŸãããè¯ãïŒåäžã®ãã£ã¹ããããå¶éãããŠããå ŽåïŒ
ç§ã¯ããããç解ããŠããªãã ãã§ãããããªããäœãåºå¥ããŠããã®ãããããŸããã ãžã¥ãªã¢ã§ã¯ããã€ã³ã©ã€ã³ããšãã©ã³ã¿ã€ã ãã¯å®éã«ã¯äžç·ã«ãªã£ãŠããªãããã§ãã ã€ã³ã©ã€ã³åã¯ãåæšè«äžãã€ãŸãã³ã³ãã€ã«æã«å®è¡ãããŸãã å€éãã£ã¹ãããã¯ãæšæž¬ãããã¿ã€ãã«é©åãªæ¹æ³ãéžæããããã«äœ¿çšãããŸãã
ããã§ã®æ··ä¹±ã¯ãC ++ã®ãã³ã³ãã€ã«æããšãå®è¡æããJuliaã®ãã®ãšæ¯èŒã§ããªãããšã§ãã Codegenã¯ãå®è¡æãã«çºçããå¯èœæ§ãããããã include("myscript.jl")
ãå®è¡ãããšã€ã³ã©ã€ã³åãå®è¡ããããšæããŸãã ãããŠããã©ã³ã¿ã€ã ããC ++ã®èŠ³ç¹ãããã®ããã®æ£ããèšèã§ãªããŠããããã¯ãã©ã³ã¿ã€ã ãã§ãã
ãŸããããŸããŸãªã¿ã€ãã§ã®ãã£ã¹ãããã¯vtableã®ãããªãã®ã§ãããããäžè¬çã§ã¯ãããŸãããïŒ
ããã¯ãå ¬éçšã«SubArrayãäœæããå¿ èŠããããã©ããçåã«æããŸã---ããã«äœãæ°ãããã®ãããããã§ãã
æšæºçãªãããã¯ããã¯å°ãé ãã§ãããJSSãžã®æåºãæ€èšããããšããå§ãããŸãã ãžã¥ãªã¢ã®èšäºããã£ãšå¿ èŠã§ãã
å€ãã®äººãã¹ããŒããäžããããšãã§ããã®ã§ããã£ã ããã®äœæ¥ãæåã«èª¬æããããã°æçš¿ãæžããããç§ã¯ããã倧奜ãã§ãã JSSã¯çŽ æŽãããã¢ã€ãã¢ã§ãããããããããŒã¿ãã¬ãŒã ãšãã£ã¹ããªãã¥ãŒã·ã§ã³ã§è¡ãããåºæ¬çãªäœæ¥ã®ããã€ããæžãçãã䟡å€ããããŸããïŒ ç§ã¯ç¢ºãã«ãããèªãã®ã楜ãã¿ãŸãã
ããŠãç§ããããæãã€ããã®ã¯ããã®å€ããæžãããŠãããšããããšã§ãïŒhttpïŒ //docs.julialang.org/en/latest/devdocs/subarrays/ã åºçç©ã«ã€ããŠã¯ããã£ãšè©³ãã調ã¹ãããšæãã§ãããããããã¯ããªãã®æ°ã®äž»èŠãªå šäœåã®ãã€ã³ãã«åœãŠã¯ãŸããŸãã
@stevengjãå€éãã£ã¹ãããã«ã€ããŠæèµ·ãã質åã«å¯ŸããŠãå€éãã£ã¹ãããããªããã°ãjuliaã§ããŒã¹ã©ã€ãã©ãªãäœæããããšã¯ããªãé£ãããšæããŸãã ç§ã¯ããã§èª°ãããã§ã«ç¥ã£ãŠããããšãèšã£ãŠããŸãããããŠãããããã§æèµ·ãããçç±ã®ããã«èª¬åŸåã®ããäŸã§ã¯ãªããã©ããçåã«æããŸãã
çªå·ã®æäœãå€æ/ããã¢ãŒã·ã§ã³ãªã©ã®è©³çŽ°ã¯ãè€æ°ã®ãã£ã¹ããããšè€éã«çµã³ã€ããŠããŸãã å€éãã£ã¹ãããã¯ãã³ã³ãã€ã©ã§ã®åæšè«ãã³ãŒãã§ã®åã®äœ¿çšæ¹æ³ã«æ¬è³ªçã«å ¬éãããã®ã§ãããããæ±çšçã§é«éãªæ°å€ããŒã¹ã©ã€ãã©ãªãäœæã§ããŸãã ããªããè¡ã£ãã¹ããŒãã¡ã³ããåŒçšãããšãããã¯ã³ã³ãã€ã©ããã©ã€ãã©ãªãžã®ããªã·ãŒäœæãåé¢ããã®ã«åœ¹ç«ã¡ãŸãã ããšãã°ã @ JeffBezansonã¯ãSchemeä»æ§ããã®ã¹ããŒã¹ã®1/3ãæ°å€ã®è©³çŽ°ã«ã©ã®ããã«è²»ãããŠããããäžåºŠç§ã«ç€ºããŸããã
å€ãã®ã€ã³ã¿ããªã¿ã·ã¹ãã ã¯ãå€ãã®å Žåãäžè¬çãªåãæã¡ãå®è¡æã«ãªããžã§ã¯ãã®åãæ€æ»ããŠãå®è¡ããã³ãŒãã決å®ããŸãã å€ãã®å Žåãã¿ã€ãããšã«ããŒã¹ã©ã€ãã©ãªã®C / C ++ / Fortranã«åå¥ã®å®è£ ããããã³ãŒãããŒã¹ã®ãããã°ã倧ããå°é£ã«ãªããŸãã å€ãã®å Žåããããã¯å€éšãã¯ãã·ã¹ãã ãä»ããŠçæãããŸãããC ++ãã³ãã¬ãŒãã䜿çšããããšã§ããã®ç¹å®ã®åé¡ãåé¿ã§ããããã«ãªããŸããã ãããã®å Žåã§ãã2ã€ã®èšèªãšåæšè«ã®åé¡ãæ®ã£ãŠããŸãã
ããã¬ãã«ã§ã¯ããã¯ãã«åãšã¯ãå®è¡æã«åã決å®ããé©åãªã³ãŒãéžæãè¡ãããã®ã³ã¹ããååŽããç§åŠèšèªã®æ°ã§ãã ãžã¥ãªã¢ã§ã¯ãåæšè«ãå€éãã£ã¹ãããããžã§ããªãã¯ããã°ã©ãã³ã°ãçµã¿åãããããšã§ãäž¡æ¹ã®ã³ã¹ããå€§å¹ ã«åæžãããåãªãã§äžè¬çãªãã¯ãã«å解é€ãããã³ãŒãïŒCïŒãèšè¿°ã§ããããã«ãªããŸãã
1ã€ã®äŸã¯ãPRïŒ9198ã®MathConst
ïŒç¡çæ°ãè¡šãïŒãšã®äžçåŒã®æ¯èŒã§ãã
https://github.com/JuliaLang/julia/pull/9198/files#diff -e247e18c426659d185379c7c96c1899dR29
FloatingPoint
vs MathConst
ã¯ããããŒããå®æ°ã®äž/äžã®ãããŒããšæ¯èŒããŸãRational{T}
vs MathConst
ïŒæçæŽæ°åã®å ŽåT
ïŒã¯ãåã§è¡šçŸã§ããæãè¿ãæçæ°ãèŠã€ããŸãã 次ã«ããããçã®äžåçãªã¿ã€ãã®äžã«ãããäžã«ãããã«åºã¥ããŠããŸãããããå®çŸå¯èœã«ããã®ã¯ãã³ã³ãã€ã«æã«Rational
ããã³BigFloat
æ©èœã«ç°¡åã«ã¢ã¯ã»ã¹ã§ããããšã§ãã ãã¯ãããªããã»ããµã®ãããªãã®ã䜿çšããããšã¯å¯èœãããããŸããããããã¯æ¬è³ªçã«ãã¹ãŠã®æ©èœã®2ã€ã®å®è£
ãå¿
èŠãšããŸãã
ãã®åé¡ã«é¢ããå°ããªæŽæ°ããããŸãã ããã¥ã¡ã³ãã¯çŸåšäžè¬ã«å ¬éãããŠããŸãïŒ https ïŒ//github.com/JeffBezanson/phdthesis
æ¬æ¥ãç§ã¯ããçš®ã®ãã©ãããèªäž»çãªæéãŸã§ã«ãªãªãŒã¹ããŸãã ãã©ããã§ã¯ãããŸããã å€ãã®éšåãå®å šã«æ¬ èœããŠããŸãã ãŸããTeXã³ã¡ã³ãå ã«ãããã®ããŸãã¯éå»ã®ããŒãžã§ã³å±¥æŽã«ã®ã¿ååšãããã®ã«ã€ããŠã責任ãè² ããŸãã:)
ãã¹ãŠã®ãã£ãŒãããã¯ãæè¿ããŸãïŒ ç¹ã«ãèšèªãäžæãèŠããŠããããžã¥ãªã¢ã³ãŒãã®è¯ãäŸãããå Žåãç¹ã«ãããªãã§ã¯å®è¡ããã®ãé£ããããšã¯äœã§ãã åžžã«éèŠãªå€éãã£ã¹ãããã®è¯ãäŸãæ¢ããŠããŸãã
ãããå ¬éããŠããã ãããããšãããããŸãã SGJã䜿çšãããªã³ã¯ããã©ã£ãŠ404ããããããããšãããšããç§ã¯é©ããã
äžè§è¡åæŒç®ã¯ããžã¥ãªã¢ã®å€éãã£ã¹ãããã®æçšæ§ã®äŸãããããŸããã ããã§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
ããããžã¥ãªã¢ã«ã©ãã»ã©å ·äœçã§ãããã¯èšããŸããããç§ãã¡ãèŠãããã«ãå°ãªããšãEigenã¯æé²ã管çããªãããã«èŠããŸããããç·åœ¢ä»£æ°æŒç®ã®äžã§èŠçŽ ã¿ã€ããå®å®ããŠããå¿ èŠããããŸãã
ãžã§ãã¯ä»ãæçµæ®µéã«å ¥ã£ãŠããããšãé¡ã£ãŠããŸãããã®ããã圌ã®è«æã«å¯Ÿãããã£ãŒãããã¯ãšä¿®æ£ïŒäžèšã®githubãªããžããªãåç §ïŒã¯ãç¹ã«æè¿ãããŸãã
ã¿ã€ããã¹ãåç §ã®æ¬ èœãªã©ã®PRãèªç±ã«æåºããŠãã ããã
@stevengjããã§é²è¡ã¹ã±ãžã¥ãŒã«ã®çºè¡šãæåŸ ãã¹ãã§ããïŒ
ã¯ãã
圌ããã§ã«MITã§ä»äºãããŠããããšãé¡ã£ãŠããŸã...ïŒãŸãã¯åœŒãçŽ æŽããããžã¥ãªã¢ã®ä»äºãç¶ããå Žæãªãã©ãã§ãïŒ...ä»åœŒã®è«æãèªãã§ããŸã...çŽ æŽããããã®ãIMOïŒ
@andreasnoackå°ãé£è§£ã§ããããšã«ããé¢çœãã§ããç¢å°è¡åãªã³ã°ã¿ã€ããå®çŸ©ããããŒã¹ããã³ã¬ã¹ããŒå解ãé©çšããŠãç¢å°è¡åã®ç¢å°è¡åã®ã³ã¬ã¹ããŒå解ã®æ§é ãã©ã®ããã«èŠãããã確èªããŸãã https://gist.github.com/mschauer/c325ff89cd378fe7ecd6 ïŒ "A"ç¢å°ãããªãã¯ã¹ã "F"å®å šãããªãã¯ã¹ã "L"äžååç¢å° "ïŒã
@ScottPJonesããããšã!!
é²è¡äºå®ïŒ5æ13æ¥æ°Žææ¥ååŸ1æStataD-463ã
@JeffBezansonã¯ãreplay.csail.mit.eduãéããŠèšé²ããäºå®ã§ããïŒ
...å€åç§ã¯ãããå¿ãããã§ã... :)
ãããæåŸã®ãã§ãã¯ããã¯ã¹ã®ç®çã§ã¯ãããŸãããïŒ
ããªãã¯_æ¬åœã«_ããªããã¢ãã¬ã¹ãäžããã¹ãã§ãããšç¢ºä¿¡ããŠããŸããïŒ ããªãã¯ããªãã®è«æã®çœ²åãããã³ããŒãæãã§ãããã¡ã³ã®ç·ã®åã«è¥²ããããããããŸããïŒ ïŒãã€ãªïŒ
ç§ã¯ãã§ã«ãã±ãããæã£ãŠããŸãã éåžå Žã§ã®äŸ¡æ Œã¯ãã§ã«800ãã«ã«éããŠãããšèããŸããã
Stata D-463ã¯ç§ã®æ¥ã«ã¯ãããŸããã§ãã...ïŒç§ã¯å人ã蚪ããããã«ãããŠNEããŒã¿ããŒã¹ã®æ¥ã®ããã ãã«ããã«ããŸããïŒ...ããã¯ååã«å€§ãããªãã§ããããïŒ ãã£ãšåœŒã¯10-250ãå¿ èŠãšããã§ãããïŒ
å ¬åŒã«ã¯D-463ã¯48èã®æ€ åã«é©åããŸãã ããã ãã§ã¯äžååã ãšæãããå Žåã¯ãããåºãéšå±ã確ä¿ããããšãæ€èšã§ããŸãã
ç§ã¯ããªããããªããããããšãæ¬åœã«æè¬ããŠãããšã¯æããŸããïŒ ãã¡ã³å šå¡ãçŸããå Žåããããã10-250ã¯ååãªå€§ããã§ã¯ãªãã§ããã...ä»ããKresgeãäºçŽããŠãã ããïŒ
_ã¢ã¬ã€ããŒã¹ã®ããã°ã©ãã³ã°ç°å¢ã¯ãç§åŠçããã³æè¡çãªã³ã³ãã¥ãŒãã£ã³ã°ã§äººæ°ããããŸãã ãããã®ã·ã¹ãã ã¯ãçžäºäœçšã®ããã®é«çŽèšèªãšãã¢ã«ãªã£ãçµã¿èŸŒã¿é¢æ°ã©ã€ãã©ãªã§æ§æãããŠããŸãã ã©ã€ãã©ãªã¯ããŸãæ©èœããŸããããããã®èšèªã§ã®ã¹ã¯ãªããäœæã¯å¿ ç¶çã«é ãããšã³ãžãã¢ãªã³ã°ã®è±éçãªåæ¥ã ãããã®åé¡ãéšåçã«æ¹åã§ãããšåºãä¿¡ããããŠããŸãã
_ãã®è«æã¯ãæ¬åœã«å¿ èŠãªã®ã¯ãã®æ©èœã®ããã®ããäžè²«æ§ã®ããæ§é ã§ãããšäž»åŒµããŠããŸãã 1ã€ãèŠã€ããã«ã¯ããã¯ãã«ã«ã³ã³ãã¥ãŒãã£ã³ã°ãå®éã«äœã§ããããå°ããå¿ èŠããããŸãã ãã®è«æã¯ããã®çš®ã®ããã°ã©ãã³ã°ã¯ãæŒç®åã®è€éããšã³ãŒãã®ç¹æ®åã«éç¹ã眮ããŠããããšãç¹åŸŽãšããèšèªã¯ãããã®èŠä»¶ã«ããããé©åããããã«èšèšã§ããããšã瀺åããŠããŸãã
_éèŠãªã¢ã€ãã¢ã¯ãcode_ _selection __with code_ _specialization _ ã_ genericé¢æ°ãšããŒã¿ãããŒåæšè«ã䜿çšããŠçµ±åããããšã§ãã ãã®ãããªã·ã¹ãã ã¯ãéå¹ççãªã³ã³ãã€ã«ããäœã«ç¹åãããã«ã€ããŠã®äžç¢ºå®æ§ã«æ©ãŸãããå¯èœæ§ããããŸãã ååã«åŒ·åãªã¿ã€ãããŒã¹ã®ãã£ã¹ãããããããã®åé¡ã«å¯ŸåŠããããšã瀺ããŸãã çµæãšããŠåŸãããèšèªã§ããJuliaã¯ããã¯ãã«ã«ã³ã³ãã¥ãŒãã£ã³ã°ãŠãŒã¶ãŒãæåŸ ããå€ãã®çç£çãªæ©èœã®Quineã¹ã¿ã€ã«ã®ãæé€ã«ãã説æããå®çŸããŸãã_
芳客ãå©çšã§ãã圌ã®è«æã®å°å·ãããã³ããŒã¯ãããŸããïŒ
å€å眲åãããã³ããŒ
ãããç§ãæãã§ããããšã§ã...ç§ã¯10-15幎ã§ãµã€ã³å ¥ãã®ã³ããŒã売ã£ãŠEbayã§ããããã®å€§éãåŸãããšãã§ãããšæããŸãïŒç§ãç§ã®åäŸã®å€§åŠæè²ãå®æžããããã«ãããæ¬åœã«å¿ èŠã«ãªããšã...ç¹ã«ã圌ããè¡ããããšèšã£ããšããã«è¡ããªã...ïŒãã€ãªãš:)
é 匵ã£ãŠããžã§ãïŒ
幞éãïŒ ããç§ããã®å°åã«ããããç§ã¯@ScottPJonesãèšåãããã¡ã³ããŒã€ã®1人ã«ãªãã§ããã
@ScottPJones ïŒ+1ïŒ
足ãæã£ãŠããžã§ãïŒ
é 匵ã£ãŠããžã§ãïŒ
幞éãïŒ @ãžã§ããã¶ã³ãœã³
@JeffBezanson幞é!!
ããŸãããã°ãç§ã¯åžãåŸãããšãã§ããŸãã
幞éã
ç§ã¯åœŒã«10-250ãäºçŽãã¹ãã ã£ããšèšã£ãïŒ
ç§ã®iPhoneããéä¿¡ããã
2015幎5æ13æ¥åå11æ53åã YichaoYunotifications @ github.comã¯æ¬¡ã®ããã«æžããŠããŸãã
@JeffBezanson幞é!!
ããŸãããã°ãç§ã¯åžãåŸãããšãã§ããŸãã
â
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ããã
幞éãïŒ
åäžïŒ
幞ããªããšã«ãç§ã¯åžã確ä¿ããã®ã«ååæ©ãçããŸãã...ãããŠç§ã¯æ£ããã£ãã§ãïŒãã€ãã®ããã«ïŒãã€ãªãš:)圌ã¯æ¬åœã«ãã£ãšå€§ããªéšå±ãäºçŽããã¹ãã§ããïŒ
ããã§ãšã
ä¿®çæžã¿ã
ãŸã ãã§ãã¯ãããŠããªããã§ãã¯ããã¯ã¹ã1ã€ãããŸãã ããŸããããŸãã
ïŒshipit ïŒïŒ tropical_drink ïŒïŒ beers ïŒïŒ cocktail ïŒïŒ tada ïŒïŒ
ïŒãããïŒ
ããã§ãšãããã¶ã³ãœã³å士ïŒ
ããã§ãšãããžã§ãïŒ
+1
ãã©ããŒ
æåŸã®ãã§ãã¯ããã¯ã¹ã¯ãã±ã³ã¿ãããŒããŒãã³ãŠã€ã¹ããŒã§åããããŸããã
ãžã§ãããã§ãšãïŒ
2015幎5æ13æ¥æ°Žææ¥ååŸ1æ44åãMike [email protected]
æžããŸããïŒ
+1
â
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/JuliaLang/julia/issues/8839#issuecomment-101772806 ã
ããã§ãšãïŒ
ãžã§ãããã§ãšãïŒ ïŒbeers ïŒïŒ beers ïŒïŒ smileïŒ
ããã¯çŽ æŽãããïŒ ããã§ãšãããžã§ãã ïŒè±ç«ïŒ
çŽ æŽããããã¥ãŒã¹ã ããã§ãšãããžã§ãïŒ
ããã§ãšãïŒ
ããã§ãšãããããŸã
ãŠãŒããŠãŒãããã§ãšããžã§ãïŒ
ããã§ãšãããã¶ã³ãœã³å士ïŒ
åçãæçš¿ããŠããã ãããããšãããããŸãã@ ScottPJonesã @jiahao ãåçããããšæããŸããïŒ
ãžã§ãããã§ãšãããããŸãã ãã®PHDã§çµãã£ãããªãã®ä»äºã¯ãç§ãã¡ã®å€ãã«åœ±é¿ãäžããŸããã ããã¯ç§åŠèšç®ã«å€§ããªåœ±é¿ãäžãããã§ã«å€§ããªåœ±é¿ãäžããŸãïŒ ããã¯ãªã³ïŒ
ããã§ãšãã
ãããïŒ
ãžã§ãããã§ãšãïŒ
çŽ æŽããããããã§ãšãããããŸãïŒ
ãã¶ã³ãœã³å士ããã§ãšãïŒ
èŠãèŠããã人ã®ããã®è«æïŒ
https://github.com/JeffBezanson/phdthesis/blob/master/main.pdf
ããã§ãšãããããŸãïŒ
ããã§ãšãïŒ
ããã§ãšãïŒ
ããã§ãšãïŒ+1ïŒ
GitHubããã¹ãŠã®åçãå転ãããããšã«ããçç±ã¯ããããŸããããããã«ãããŸãã
éäŒåŒãããªã®çºè¡ïŒhttpïŒ //youtu.be/hGpLOZX6CEY
ã¢ã¬ããŒãããã§ãšãããžã§ãïŒ ã·ã¢ãã«ã«æ¥ãããšãããã°ããç¥ãã®é£²ã¿ç©ãè²·ãããŠãã ããã :)
ãžã§ãããã§ãšãã ã³ãã¥ããã£ãšããŠã®ããªãã®ä»äºãç¥ãã®ã¯ãšãŠãããæ°åã§ãã
ããã§ãšãïŒ
@jiahao ãè¬èŸããŒãžã®è£è¶³è³æãšããŠããžã¥ãªã¢ã®ææ°ã®äžçãåå®è¡ãã䟡å€ããããããããŸãã:)
ã¿ãªãããããããšãããããŸããã
æ®å¿µãªãããç§ã®è«æã¯å®éã«ã¯å®æããŠããŸããããããŸãããã°ããã«å®æããã§ããã...
ããå°ãåçããããŸããç®ãèŠãŸããåŸããžã§ãã«åçãéããŸãïŒåœŒã®æ¯èŠªããšãŠãçŽ æµãªå¥³æ§ã®ããã«ïŒïŒ_ Dr._ãã¶ã³ãœã³ã¯ãå¿ èŠã«å¿ããŠããã«åçãæçš¿ã§ããŸã...
ãŸã å®æããŠãªãïŒïŒïŒ ãžã§ãªãŒã¯ããªãã«ãã®è¡ãŸã¿ãã®ãæ§æãããã¹ãŠåé€ããŠãSåŒã§æžãããŠãããããã«é Œãã ã®ã§ããïŒ
Macã䜿çšããŠãã@JeffBezansonã¯ãç§ãä»ãŸã§èŠããšæã£ãŠããåçã§ã¯ãããŸããã
ããŒãïŒ
ããã§ãšã
æ± ã®ãã¡ãåŽã®ãã¹ãŠã®ãã¡ã³ãããããã£ãã
ãŸã å®æããŠãªãïŒïŒïŒ ãžã§ãªãŒã¯ããªãã«ãã®è¡ãŸã¿ãã®ãæ§æãããã¹ãŠåé€ããŠãSåŒã§æžãããŠãããããã«é Œãã ã®ã§ããïŒ
ããªãã¯ãããéä»ãã«ããŸããïŒ åè«ãããªããã ãããã圌ã¯ãªãã·ã§ã³ã®s-exprã¢ãŒãã«èœã¡çããŸãã
ãã¬ãŒã³ããŒã·ã§ã³ã®åŸã§åœŒãšè©±ããŠããŸãã...圌ã¯ããªãã®ãã®ã奜ãã§ããããå®éã«ã¯ãã¹ãŠã®æ§æãæ°ã«ããŸããã§ãã...ããã¯_so_ã ãã§ã...圌ã¯Schemeããã¥ã¢ã«ãããã«å°ããããç§ã«æãåºãããŸããïŒgrinningïŒ6.001 [æåã®åŠæã«æãããã]ã§åœŒãè¿ãããšããMacLispã«å°ããªSchemeã€ã³ã¿ãŒããªã¿ãŒãå®è£ ããå¿ èŠããããŸãã... Schemeã¯ãšãŠãå°ããã£ãã®ã§ãããªãå®è¡å¯èœã§ãã...
ãããŠãäŒç€Ÿçšã®ããŒãã³ã®ããã«ã䜿ãã°ãããã«ãããããã¯ã¢ãŠãã§ãããšç¢ºä¿¡ããŠããŸãïŒæ®ã£ãŠããå Žåã¯ïŒ;-)ïŒ
ã¹ããŒã ããã¥ã¢ã«ã®é·ãã«ã€ããŠèšãã°ãããã¯ããããã§ããå³æžé€šã§å®çŸ©ãããŠãããžã¥ãªã¢ã§ã¯ããã®å€§éšåãæ°åã®æ¯ãèããææžåããããšã«å°å¿µããŠããŸãã Juliaã¯ãã¹ããŒã ãããå°ããªã³ã¢èšèªã«ãªãå¯èœæ§ããããŸãïŒãã¡ãããLLVMä»æ§ãããã«ã¹ããŒãã«ã§çããå Žåãé€ããŸãïŒã
è³æãå察ããåãããæ§æã匷調ãããããŠããŸãã http://www.schemers.org/Documents/Standards/R5RS/HTML/ã®ã»ã¯ã·ã§ã³7.1ã確èªããŠãã ããã Schemeã®æ§æã¯äººã ãèãããããè€éã§ãïŒ
Juliaã¯ãã¹ããŒã ãããå°ããªã³ã¢èšèªã«ãªãå¯èœæ§ããããŸãïŒãã¡ãããLLVMä»æ§ãããã«ã¹ããŒãã«ã§çããå Žåãé€ããŸãïŒã
ã¯ãããžã¥ãªã¢ã¯éªšãããã§ãïŒ
å€ã@sexpr
ãã¯ããæãäžããæãæ¥ãŸãããïŒ
åæ¥ããã§ãšãããããŠãžã¥ãªã¢ãšäžç·ã«åŒãåºãããã®ïŒ
ïŒcakeïŒããã§ãšãããããŸãïŒ
ããã§ãšãããããŸã@JeffBezansonïŒ
ããã§ãšã ïŒïŒ
ïŒ+1ïŒ
@boyersïŒ é·ãéãã£ãŠããŸããã§ãããïŒ
ããªããã¡ãæ¬ å Ž ïŒïŒ
ããã§ãšãïŒ
質åã§ããPDFã«ã¯ãç®æ¬¡ã«ãªã³ã¯ããªããPDFã¡ã¿ããŒã¿ã«é²èŠ§å¯èœãªã€ã³ããã¯ã¹ããããŸããã
MITãåæ¥ããããã°ã©ããŒã©ã€ã¿ãŒãåæã«\ usepackage {hyperref}ãè¿œå ããã®ãé£ããã®ã¯ãªãã§ããïŒ
ããã¯ãããªãããã ã¹ãããããã®ã§ã¯ãªãããã¹ãŠãèªãããšã«ãªã£ãŠããããã§ãã ;-)
ããããã¯ããhyperrefã¯ãããã¯ããã«ã¢ã¯ã»ã¹ããããããŸãã
ãªã³ã¯ãè¿œå ããããå šéšèªãããšããçŽæããŸãïŒP
ããã§ãšãã èªç±ãåŸ ã£ãŠããŸãã
ããã§ãšãããã¶ã³ãœã³å士ïŒ
@ nicola-giganteããã«ãªã¯ãšã¹ããè¡ãããšãã§ããŸãïŒ smile:ã
æé«ã®è«æè³ãæ±ããŠãããŒæŽ»åãããããšã¯ã§ããŸããïŒ
ããã§ãšãããããŸã!!!
@ jpfairbanks-è¯ãã¢ã€ãã¢ã§ãïŒ ããããããã¯åœŒã®è«æã¢ããã€ã¶ãŒã«ãã£ãŠæåºãããªããã°ãªããŸãã...ãã¹ã¿ãŒã¢ã©ã³ãšãã«ãã³ãç§ã¯æã...
ãããããã¯é¡§åã«ããæåãš5éã®æ¯æãå¿
èŠã§ãã ã«åºã¥ã
ãã®åé¡ç§ã¯å°ãªããšã5人ã圌ãããã«å€ãããšæããšæããŸãã
ãµããŒãã®5æåã«å¶éãããŠããŸããïŒ ãŸãã圌ãããã«å€ãããšæãå®éã®æ°ã¯ãå°ãªããšãæ°æ¡å€ãã§ãïŒ
@JeffBezanson ïŒããã§ãšãããããŸãïŒ
@alanedelman ïŒ @jpfairbanksã«ã¯è¯ãç¹ããããšæããŸãããžã§ãã¯ã ACMå士è«æè³ã«ããããŒããããã¹ãã§ãã
@JeffBezansonãããã£ãããããã«å€ããïŒ
@ScottPJones ãããã«ãè«æã®åœ±é¿ã«é¢ããè¿œå ã®æŽå¯ãŸãã¯èšŒæ ãæäŸã§ããåéã®å°é家ããã®ãµããŒãã¬ã¿ãŒãå°ãªããšã3ã€ã5ã€ä»¥äžå«ããå¿ èŠããããŸããã
ãã¶ãããžã§ãªãŒã¯åœŒã«1ã€æžãã§ãããïŒåœŒãs-exprã¢ãŒããè¿œå ããåŸïŒïŒïŒgrinningïŒ
ããã«ãŒãã¥ãŒã¹ã®ããã³ãããŒãž:-)ããã§ãšãããžã§ãã
@ nicola-giganteããã§ããhyperrefãè¿œå ããŸãã
çæ§ãããããšãããããŸããã ããªãã®æè¬ã®ãã¹ãŠã究極ã®è³ã§ãã
@jiahaoãã©ãŠã¶ãæ°ã«ããªãEXIFããŒããŒã·ã§ã³ããŒã¿ãããããã§ãã ã»ãšãã©ã®æéã Chromeã¯ãç»åãç¬èªã®ãŠã£ã³ããŠã§ããå Žåã«ã®ã¿EXIFããŒã¿ãèæ ®ããŸãã å³ã¯ãªãã¯ããŠ[æ°ããã¿ãã§éã]ãã¯ãªãã¯ãããšãæ£ããæ¹åã衚瀺ãããŸãã
EXIFã¡ã¿ããŒã¿ã¹ããªãããŒã䜿çšããŠããããåãé€ãããé©åãªãæ¹æ³ã§å転ãããããšãã§ããŸãã
ACMè«æè³ã®ããããŒãã«ã¯+1ã
æšèŠã®ç· ãåãã¯2015幎10æ31æ¥ã§ãã
http://awards.acm.org/doctoral_dissertation/nominations.cfm
ACMã圌ããžã®èäœæš©ã®è²æž¡ãšç¬å çãªåºçæš©ãèŠæ±ããã®ã¯å¥œãã§ã¯ãããŸããã ãããã«ãããããã¯ä»ã§ã䟡å€ããããæš©åšããããŸãã
ããã§ãšãããããŸãïŒ
ç¬å åºçæš©ïŒïŒïŒ ç§ã¯ãµã€ã³å
¥ãã®ã³ããŒã«ãã£ããæã£ãŠããŸãïŒãŸãã¯2ã€... 10ã15幎ã§e-bayã§è²©å£²ããããã«1ã€ãå¿
èŠã§ãããã1ã€ã¯èªåã®ããã«ä¿ã€ããã«ïŒãã€ãªãšïŒïŒ...ãããããã¯ãããåã«ãããååŸããå¿
èŠããããŸãACMïŒ
ïŒãã¡ãããããã¯ãããããããã¡ã³ããŒã®ããã«ACMã®ããžã¿ã«ã©ã€ãã©ãªã§å©çšå¯èœã«ãªãããšãæå³ããŸãïŒ
è«æã«çœ²åããããã«ç§ã«æž¡ãããããç§ã¯ããããæå³ãæã£ãŠããŸã
ããŸããŸãªè³ã«è«æãããããŒãããããšã®:-)
2015幎5æ17æ¥åå8æ49åãã¹ã³ããP.ãžã§ãŒã³ãº[email protected]
æžããŸããïŒ
ç¬å åºçæš©ïŒïŒïŒ ãµã€ã³å ¥ãã®ã³ããŒïŒãŸãã¯
2ã€... 1ã€ã¯10ã15幎ã§e-bayã§è²©å£²ããå¿ èŠãããããã1ã€ã¯èªåã®ããã«ä¿ç®¡ããå¿ èŠããããŸã[ç»åïŒ
ïŒgrinningïŒ]ïŒ... 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åºæã§ããïŒ