é¢æ°ãã€ããšããŠã®|>
ã®çŸåšã®äœ¿çšãå»æ¢ããŸãã ã€ãŸããæ§æx |> f
ã¯å»æ¢ãããéåžžã®åŒã³åºãæ§æf(x)
ãåªå
ãããŸãã éæšå¥šæéã®åŸã Base.:(|>)
ã¯æªå®çŸ©ã«ãªããŸãã
ãã®å€æŽã¯ã httpsïŒ //github.com/JuliaLang/julia/issues/16985#issuecomment-227015399ã§tkelmanã«ãã£ãŠæåã«ææ¡ãããŸããã
é¢æ°ãã€ãã³ã°ã®ããŸããŸãªæ§æïŒç¹ã«ãïŒ5571ãåç §ïŒã«ã€ããŠã¯ãããŸããŸãªèšèªãæš¡å£ããããã®è°è«ããããå€ãã®è«äºããããŸããã ãã®è°è«ã¯_æªå¿_ã§ãããç§ã¯ãããåããã·ã¥ããããããŸããã ããã¯ãã®ææ¡ã®ç®çã§ã¯ãããŸããã
ããèããããããç¶æãããŠããå€ãã®ããã±ãŒãžã«ã¯ãäžè¬çãªãã®ãšç¹å®ã®ãã®ã®äž¡æ¹ã®ããŸããŸãªãŠãŒã¹ã±ãŒã¹ã«äŸ¿å©ãªãã€ãã³ã°æ§æãæäŸãããã¯ããå®è£ ãããŠããŸãã äŸãšããŠã¯ã Lazy.jl ã FunctionalData.jl ã Pipe.jl ã ChainMap.jlãªã©ããããŸãã
StefanKarpinskiãšandyferrisã¯ãïŒ17155ã§ä»»æã®é¢æ°åæãæäŸããŸãããããã¯ãå€ãã®ç¶æ³ã§åæ§ã®ç®çãæããããšãã§ããŸãã
tkelmanãïŒ5571ã§åæ§ã«äž»åŒµããããã«ãBaseã®é¢æ°ãã€ãã©ã€ã³ã¯ããªãã¿ã®åŒã³åºãæ§æããéã«ãªã£ãŠããŸãã äž¡æ¹ãåºæ¬èšèªã§äœ¿çšããããšã¯ãåºæ¬çã«ãåãç®æšãéæããããã«2ã€ã®ç°ãªãæ§æã䜿çšããããšãæšå¥šããŠããŸãã Baseã®ãœãªã¥ãŒã·ã§ã³ã䜿çšããŠåããã®ãæžãæ¹æ³ã¯è€æ°ããããšããããããŸãããéåžžããœãªã¥ãŒã·ã§ã³ã¯å°ãªããšãåæ§ã®ã¡ã³ã¿ã«ã¢ãã«ã«æºæ ããŠããŸãã ãã®å Žåãæ§æã¯æåéãå察ã®ã¡ã³ã¿ã«ã¢ãã«ãæ¡çšããŠããŸãã
é¢æ°ãã€ãã©ã€ã³ã¯ããªããžã§ã¯ãã®åŸã«ã¢ã¯ã·ã§ã³ãé©çšããããšã«ãããé©ãæå°ã®ååã«éåããŸãã ã€ãŸãã sum(x)
ãèªããšã sum()
ã衚瀺ãããããåŒæ°ã®å€ãåèšããããšãããã«ããããŸãã x |> sum
ã衚瀺ããããšã x
ã衚瀺ãããŸãããã®åŸãçªç¶ããã®å€ãåèšããŸãã ä»ã®ããŒã¹ãœãªã¥ãŒã·ã§ã³ãæåŸã«ã¢ã¯ã·ã§ã³ãé
眮ããããšã¯ã»ãšãã©ãããŸãããããã«ããããã€ããå¥åŠãªãã®ã«ãªããŸãã
ãã€ãã³ã°ã¯ç¢ºãã«ä»ã®èšèªã§ãåäŸããããŸããããšãã°ããããªãŒãŠã£ãã«ã ã®Rã§ã®%>%
ïŒããŒã¹Rã®äžéšã§ã¯ãããŸããïŒã§ããããã®ã¹ã¿ã€ã«/ãããŒãçã«ããªã£ãŠããå ŽåããããŸãã ãã ããBase Juliaå
ã®äžè²«æ§ãä¿ã€ããã«ãããã±ãŒãžã«ãã€ãæ§æãæäŸãã責任ã延æããããšãææ¡ããŸããããã«ããã |>
ãåå®çŸ©ããããé©åãšæããã䟿å©ãªãã¯ããæäŸãããã§ããŸãã
ãã®ææ¡ãåãå ¥ããããå Žåãã¢ã¯ã·ã§ã³ã¢ã€ãã ã¯æ¬¡ã®ããã«ãªããŸãã
Base.:(|>)
ã®æ£åŒãªéæšå¥šãæäŸããŸãé¢æ°ãã€ãã³ã°ã¯ãé¢æ°åŒã³åºãã®æ¥å°ŸèŸæ§æãæäŸããŸããããã¯ãREPLã§ã€ã³ã¿ã©ã¯ãã£ããªããŒã¿çæãšãããªãèŠèŠå/èŠçŽã«äŸ¿å©ã§ãã
å€ãã®äººãã¿ã€ãããã®ãèŠããŠãŒã¹ã±ãŒã¹ã¯
julia> somecomplicatedthingproducingarray
...
<ARROW UP>
julia> somecomplicatedthingproducingarray |> summarize
ããã§ã summarize
é¢æ°ã¯ããããããã¹ãã°ã©ã ã®ãããªãã®ã§ã
@jiahaoç§ã¯ããã圹ã«ç«ããªããšäž»åŒµããŠããã®ã§ã¯ãªããBaseå ã§äžè²«æ§ãä¿ã¡ãããã±ãŒãžã«ãã®ãããªãã®ãæäŸãããå¿ èŠããããšäž»åŒµããŠããŸãã
replã®äœ¿çšã«ans
ããããŸã
ãã®ææ¡ã§ã¯ã |>
ãŸã äžçœ®æŒç®åãšããŠè§£æãããŸããïŒ
@ ajkeller34 ïŒç¢ºãã«ãããã±ãŒãžã¯ãå€ããã®ãšæå³çã«äºææ§ããããšããå¶çŽãããŸãåããã«ãïŒã¿ã€ãã®èäœæš©äŸµå®³ãšå ±åã®ç¹ã§äºãã«ããŸãæ©èœããå¿ èŠããããŸããïŒããã䜿ã£ãŠå¥œããªããšãèªç±ã«è¡ãããšãã§ããŸãåºæ¬å®çŸ©ã
Baseå ã®æ§æã®äœ¿çšãåé€ããŸãïŒååšããå ŽåïŒ
ãããç§ããããè¡ãããã«è¡ã£ãéåžžã«æ代é
ãã®è©Šã¿ã§ãïŒ https ïŒ//github.com/tkelman/julia/commit/212727cdc4aaa3221763580f15d42cfe198bcc1c
åœæãããŒã¹ã§ã®äœ¿çšã®ã»ãšãã©ã¯ããªãäºçŽ°ãªãã®ã§ããã ãããããã®ç¡åé¢æ°ã«ãã€ãããããšãããã¹ãã®äœ¿çšæ³ã®ããã€ãã¯ããã€ãã³ã°ã®æ¹ãè¯ããããããŸãããããããã®ã»ãšãã©ã¯åãç¡åé¢æ°ãè€æ°ååå©çšããŠããã®ã§ãååãä»ããŠããã®æç¹ã§ã®æ£åžžãªæ©èœã
æ°ã«ãªã人ã®ããã«ã ChainRecursive.jlããªãªãŒã¹ããŸããã å®äºããããChainMap.jlãšãã®ããŸããŸãªåã®åŽ©å£ã«ã€ããŠã®è«è©±ã«ã€ããŠçºè¡šããŸãã
ç§ã¯ããã€ãã®æ¢åŸæš©çãš|>
ãå¯èœã«ãããã®ã«ç¹å¥ãªå¥œã¿ãæã£ãŠããã®ã§ãããã§ããã€ãã®æµæãæäŸãããŠãã ããã
次ã«@jiahaoã䜿çšããŠãREPLã§ãã°ããè©ŠããŠã¿ããå Žåã«|>
ãéåžžã«åœ¹ç«ã€ããšã説æããŸãã ããã«ãããªãã®è°è«ã倧ããããå ŽåããããçšåºŠã®èœã¡çãã«å€ããå Žåã«ã圹ç«ã¡ãŸãïŒããã§ããç§ã¯ããèšããŸããïŒ ã ãªã³ã¯ãããäŸã®å Žåãå®éã«ã¯ãåŒã³åºãããé¢æ°ãããåŒæ°ãç®ç«ãããæ¹ãããã§ãããã sum(x)
ã¯åçŽãããäŸã§ãããå®éã«ã¯sum(x)
ãšèšè¿°ããå¿
èŠããããŸãïŒã Escher.jlã§ã¯ãèŠçŽ ã«ããããã£ãè¿œå ãããã¹ãŠã®é¢æ°ã«ã«ã¬ãŒã¡ãœããããããŸãã ããã¯|>
ãšéåžžã«ããåããŸãïŒããã¯èšç»ãããŠããŸãããã map
ã§ãããŸãæ©èœããŸãïŒãè¡ã®æåŸã§è©ŠããŠUIã®æŽæ°ã確èªã§ããã®ã¯å¬ããããšã§ããããã«ã è¡šçŸã®å§ãŸãã«ãã©ãçãå¿
èŠã¯ãããŸããã å°ãªããšãEscherã§äœ¿çšããå Žåãæšå¥šããã代æ¿æ¹æ³ã¯ã padded_box_contents_aligned_right_tomato_background
ïŒãŸãã¯ããã«æªãããšbox34
ïŒã®ãããªæ§æãããååã®å€æ°ã«å€§ããªåŒãå²ãåœãŠãŠãããããã®é¢æ°ãåŒã³åºãããšã§ãã çŸããèªã<big UI expression> |> aligncontents(right) |> pad(1em) |> fillcolor("tomato")
ãšã¯å¯Ÿç
§çã«
ãã®åŸãEscherå
|>
ãå®çŸ©ã§ããããšã¯ããã£ãŠããŸãããããããããããã§ããããã WARNING: using Escher.|> in module YourPackage conflicts with an existing identifier.
ããã±ãŒãžãããã«ã»ãŒééããªãç°ãªãæå³ãäžããã®ãèŠããšãé ããããããªããŸããææ
®ãã¹ãïŒ
StefanKarpinskiãšandyferrisã¯ãïŒ17155ã§ä»»æã®é¢æ°åæãæäŸããŸãããããã¯ãå€ãã®ç¶æ³ã§åæ§ã®ç®çãæããããšãã§ããŸãã
box |> fill("orange") |> pad(2em)
ã®ä»£ããã«ã$ box |> fill("orange") â pad(2em)
ã§ã¯ãªã(fill("orange") â pad(2em))(box)
$ã«ãªããŸããïŒ ããã2ã€ã¯çŽäº€ããŠããããã«èŠããŸãã
Escherã«ãããªããžã§ã¯ããšããŠã®ã¯ããŒãžã£ã®äœ¿çšã¯ããã®æ§æã䜿çšããããã ãã«DSLãå®çŸ©ããŠããããã«èŠããŸãïŒåäžå ¥åãåäžåºå以å€ã®ãã®ã«ã¯é倧ãªå¶éããããŸãïŒã ãããã³è€æ°ã®äœ¿çšå¯èœãªé£éãã¯ãã®1ã€ã䜿çšããå Žåã¯ãããäžè¬åã§ããŸãã
Baseã®ããã®å®çŸ©ãåé€ãããšããã®æ§æã奜ããªäººã¯ããã䜿ã£ãŠãã£ãšé¢çœãããšãããããšãã§ããŸãã
@shashiããªãã®æèŠã¯ç解ã§ããŸããããã®å·ã§åŒçšããããã±ãŒãžã®1ã€ã䜿çšããŠããåãåäœãåŸãããšãã§ããŸããã äŸãšããŠãEscherã®äŸã§ã¯ãFunctionalDataã䜿çšããŠ<strong i="6">@p</strong> vbox(<really big thing>) | pad(2em)
ãå®è¡ããããLazyã䜿çšããŠ@> vbox(...) pad(2em)
ãå®è¡ã§ããŸãã
Baseã®ããã®å®çŸ©ãåé€ãããšããã®æ§æã奜ããªäººã¯ããã䜿ã£ãŠãã£ãšé¢çœãããšãããããšãã§ããŸãã
ããã䜿çšããå¯äžã®å®å
šãªæ¹æ³ã¯Escher.|>(...)
ãŸãã¯Lazy.|>(...)
ã§ããããã䜿çšã§ããªãããšãé€ããŠã
ä»®ã«ã Base
ã§å®çŸ©ãããŠããªããšä»®å®ããŠãå®çŸ©ãšãšã¯ã¹ããŒãã®äž¡æ¹ãè¡ã2ã€ã®ç°ãªãããã±ãŒãžã䜿çšããŠããå Žåã |>
ãäžçœ®æŒç®åãšããŠã©ã®ããã«äœ¿çšããŸããïŒ
@kmsquireãŠãŒã¹ã±ãŒã¹ã«ãã£ãŠç°ãªããŸãã |>
ã¯ãçŸåšãšåãããã«äžçœ®æŒç®åãšããŠè§£æãããŸãããBaseã«ã¯å€ããããŸããã ãã¯ãã§äœ¿çšããå Žåã¯ãç¹å®ã®ããã±ãŒãžãã©ã®ããã«å®çŸ©ãããã¯é¢ä¿ãããŸãããããã¯ãåŒã³åºãåŒã®æåã®åŒæ°ã«ãªãã ãã ããã§ãã
ããšãã°ã <|
ãèããŠã¿ãŸããããããã¯ãäžçœ®æŒç®åãšããŠè§£æãããŸãããå€ã¯ãããŸããã æªå®çŸ©ã§ããããŸã ãããŸã
julia> dump(:(a <| b))
Expr
head: Symbol call
args: Array{Any}((3,))
1: Symbol <|
2: Symbol a
3: Symbol b
typ: Any
ããã±ãŒãžã¯ã +
ã®å Žåãšåãããã«ãããŸããŸãªæå³ãæã€Base.:(<|)
ã®ã¡ãœãããå®çŸ©ããã³ãšã¯ã¹ããŒãã§ããŸãã
ããããåªããé¢æ°ãã€ããæäŸããããã±ãŒãžã¯ãã¯ãã§ãããè¡ããŸãããŸãã«ãã®çç±ããã§ãã
FWIWãé£éäžã«ãã¹ãŠã1ã€ã®åŒã«å§çž®ããããããè©äŸ¡äžã«é£éããã±ãŒãžã|>
ã䜿çšããå¿
èŠã¯ãããŸããã ããã±ãŒãžã|>
ãå®çŸ©ããããã«ãªãã°ãããã¯ãŸãã«ããŒã¹ã§ã®å®çŸ©ã«ãªããšæããŸãã ãããã代ããã«é£éãã¯ãã䜿çšããå¿
èŠããããŸããã ãã§ãŒã³ã§ããŸãæ©èœããã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããæ¹æ³ã®è¯ãäŸã«ã€ããŠã¯ã DataFramesMeta
ãåç
§ããŠãã ããã
ãããéæšå¥šã«ããå Žåã¯ãæååé£çµã®*
ãéæšå¥šã«ããå¿
èŠããããŸããïŒ ããã«ã¯ã string(a, b)
ãåé·ã§ããã®ãšåæ§ã®åé¡ãããã a
ãšb
ãæ°åã§ã¯ãªãããšãèãããšãé©ãæå°ã®ååã«éåããŸãã
ããäžè¬çã«ã¯ã *(a, b)
ãša * b
ã®ãããªè€æ°ã®åŒã³åºãèŠçŽããããšæ··ä¹±ããããããããããã¹ãŠã®äžçœ®èšæ³ãå»æ¢ããå¿
èŠããããŸããçŸåšã®3ã€ã®ç°ãªãæ§æã1ã€ã«æžãããŠãå®å
šãªäžè²«æ§ãåŸãããšãã§ããŸãã éããé¿ããããã«ãé¢æ°åŒã³åºããæ¬åŒ§å
ã«ç§»åããåé·ãªã³ã³ããåé€ããããšãæ€èšããŠãã ããã
|>
ã¯ãçŸåšãšåãããã«äžçœ®æŒç®åãšããŠè§£æãããŸãããBaseã«ã¯å€ããããŸããã ãã¯ãã§äœ¿çšããå Žåãç¹å®ã®ããã±ãŒãžã§ã©ã®ããã«å®çŸ©ãããŠãããã¯é¢ä¿ãããŸããã
Baseããåé€ããå¿ èŠãããçç±ã¯ãŸã ããããŸããã
@bramtaylã¯è¯ãç¹ã瀺ããŠããŸãïŒ
ããã±ãŒãžãå®çŸ©ããããšããã|>ããã¯æ£ç¢ºã«å®çŸ©ãåºæ¬ã«ãªããšæããŸãã
ãããŠããããå®çŸ©ããè€æ°ã®ããã±ãŒãžã䜿çšããå¯äžã®æ¹æ³ã¯ããããäžçœ®ã§äœ¿çšããªãããšã§ãã
|>
ããã¯ãå ã§äœ¿çšããããã«Baseã®å®çŸ©ãåé€ããå¿ èŠãããçç±ãããããŸããã
ããã§ã¯ãããŸããã ç§ã®ãã€ã³ãã¯ãBaseã®ç¶æ³ã«é¢ä¿ãªãããã¯ãå
ã§|>
ã䜿çšã§ãããšããããšã§ãã é©åã«è§£æããæŒç®åã«ã€ããŠãåãããšãèšããŸãã ææ¡ã®ãã€ã³ãã¯ãé¢æ°åŒã³åºãã«é¢ããŠBaseãäžè²«æ§ã®ãããã®ã«ããããšã§ããããããã°ãããã±ãŒãžãä»ããŠé
管åäœãå®çŸã§ããŸãã ããã±ãŒãžãç¹ã«|>
ã䜿çšãããã©ããã¯éèŠã§ã¯ãããŸããã <|
ãŸãã¯æåéãä»ã®äžçœ®æŒç®åã䜿çšããããšãã§ããŸãã
@ararslanããã§ãããããã¯ç§ãå°ããã€ããã§ã¯ãããŸããã§ãããããã«ã³ã¡ã³ããæŽæ°ããŸãããããããªããã
ãšã«ãããç§ã¯ãé¢æ°åŒã³åºãã®èŠ³ç¹ããèªå·±å®çµåã®ããŒã¹ããšããææ
ãå®å
šã«ã¯ç解ããŠããŸããã ãã®ããã«èŠãããšããã¯ã以å€ã®ã³ã³ããã¹ãã§|>
ã䜿çšããã®ãé£ãããªãã ãã§ãã å人çã«ã¯ã |>
ã¯ãé©ãã¹ãããšã§ãããåå¿è
ã«ãšã£ãŠåŠã¶äŸ¡å€ã®ããããšã ãšæããŸãã å°ãªããšãREPLã§ã®åŽåãç¯çŽã§ããŸãã |>
ã¯ä»ã®äžçœ®é¢æ°ãšåãããã«é¢æ°ã§ãããé¢æ°ã¯åãªãå€ã§ãããšããæèšãè£åŒ·ãããã®ã§ããããšã«åŸã§æ°ä»ãã®ã¯éåžžã«æ¥œããããšã§ãã
ããããæ£åŒãªãã®ã§ãããªãªãŒã¹ãµã€ã¯ã«ã®æåŸã§ã¯ãªããæåã«éæšå¥šãæ§æã®å€æŽã«ã€ããŠè©±ãåã£ãã決å®ãããããŠãã ããã çŸåšããã¹ãŠã®äž»èŠãªéçºè ãšè²¬ä»»ã®ããããã±ãŒãžã¯ã0.6ãå®æãããããã«æéãšãšãã«ã®ãŒãè²»ãããŠãããå¥ã®ïŒè¯ãïŒã¢ã€ãã¢ãèããæéããªããããããŸããã
ãç§ã¯ããã圹ã«ç«ããªããšäž»åŒµããŠããã®ã§ã¯ãªãããããäžè²«ããŠããã¹ãã ãšäž»åŒµããŠããã
æã
æçšæ§ã¯äžè²«æ§ãæã¡è² ãããŸããïŒ äžæŽåã«æ°ã¥ããŠããŸããã§ãããã |>
æ§æã圹ç«ã€ããšãããããŸããã ãããåé€ãããå Žåãç§ã¯å
·äœçãªãã®ãäœãåŸããšã¯æããŸããã
å¯èœã§ããã°ãè³æ祚ã®èª¬æïŒ
çŸåšBaseã«ãããã®ã®å€ãã¯ã代ããã«ããã±ãŒãžã§çºçããå¯èœæ§ããããŸãã èŸæžãããã±ãŒãžã«ç§»åããå¿
èŠããããŸããïŒ ãã¶ãã䞊ã¹æ¿ããã·ã£ããã«ãªã©ã®æäœãäžèŠ§è¡šç€ºããŸããïŒ ååäœæ¥çïŒ Baseã«å«ããã¹ããã®ãšå«ããªããã®ã«ã€ããŠã¯ãé·ã詳现ãªè°è«ããã£ããšæããŸãããäžéšã®æ©èœãBaseã«å«ãŸããçç±ã¯3ã€ãããšæããŸãã
1ïŒãã®æ©èœã¯ãããŒã¹ã§ä»ã®æ©èœãæå¹ã«ããããã«å¿
èŠã§ãã
2ïŒãã®æ©èœã¯èšèªã®éèŠãªéšåã§ãããå€ãã®Juliaããã°ã©ããŒãšããã±ãŒãžãããã䜿çšããŸãããããã£ãŠãå€ãã®äººã
ãèªåèªèº«ã転ããæçåã§ã¯ãªããå
šå¡ãåæããåäžã®å®è£
/æ§æãæã€ããšãæãŸããã§ãã
3ïŒããŒã¹ã«æ©èœãå«ãããšããçã®ããžã¥ãªã¢ãããå¿«é©ã«äœ¿çšã§ããããã«ãªããããããã«æ©èœã§ãããšæããããããã«ãªããŸããããã¯ãèšèªã®äŒéãšæ¡çšã«åœ¹ç«ã¡ãŸãã
sum
ã®ãããªãã®ã¯ããããã3ã€ã®ãã€ã³ããã¹ãŠã«ãããããé¢æ°ã®ãã€ãã³ã°ã¯2çªç®ãš3çªç®ã®ãã€ã³ãã«ããããããšäž»åŒµããŸãã
æåã®ïŒããæžãããïŒææ¡ãšãã®ã¹ã¬ããã§ã®è°è«ã®äž¡æ¹ã§ãå ±éã®ããŒãã¯ããã¯ããä»ããŠãã€ãã®ãããªæ©èœãæäŸããããã€ãã®ããã±ãŒãžã®ååšã§ãïŒLazy.jlãPipe.jlãChainMap.jlãªã©ãè€æ°ã®ããã±ãŒãžã®æ°ã¯ãã³ãã¥ããã£ã®å€ãã®äººã ããã€ããæçšã§æãŸããæ©èœãšèŠãªããŠããããšã匷ã瀺åããŠããŸãããã®ãã£ã¹ã«ãã·ã§ã³ã¹ã¬ããã«ãããã®ããã±ãŒãžãååšããããšã¯ãããã®å€ãã®äººã ããã€ãã®äœ¿çšãç解ããŠãµããŒãããŠããããšã瀺åããŠããŸãã
é 管ã¯Juliaã³ãã¥ããã£ãä»ã®èšèªã§äžè¬çã§äººæ°ã®ããæ©èœã§ããããããã®ãã£ã¹ã«ãã·ã§ã³ã§ããç¹ã«REPLïŒJuliaãèŒãå ŽæïŒã§ã¯å€ãã®çšéããããJuliaãšã³ã·ã¹ãã ã«ã¯ãã§ã«æçåãååšããããšã«äººã ã¯åæããŠããããã§ãã ..ç§ã®èªã¿åãã¯ãBaseããåé€ããå¿ èŠããããšããããšã§ã¯ãªããBaseã§äœ¿çšå¯èœãªé 管æ§æãæ¡åŒµããŠãæçåã®å¿ èŠæ§ãæžããå¿ èŠããããšããããšã§ãã ãããããªã©ã®ããŸããŸãªæ¹æ³ãæäŸããããŸããŸãªããã±ãŒãžã¯åé¡ãªãããã§ãã é¢æ°ãé©çšããããŸããŸãªæ¹æ³ãæäŸããããŸããŸãªäººæ°ã®ããããã±ãŒãžã¯ãããªãæãããã§ãã
ããã«ãBaseããé
管ãåé€ããŠããäžçœ®æŒç®åããã®ãŸãŸã«ããŠããã®ã¯æå€ã ãšäž»åŒµããŸããJuliaã§ã¯ãç¬èªã®äžçœ®æŒç®åãå®çŸ©ããããšã¯ã§ããŸããããæªäœ¿çšã®äžçœ®æŒç®å|>
ãã¶ãäžãã£ãŠããŠã次ã®ããã«å®çŸ©ã§ããŸãããé¡ãããŸããïŒ ãããåªããæ©èœã§ããå Žåã¯ã10åãŸãã¯20åã®äžçœ®æŒç®åãæå®ããŠãèªç±ã«å®çŸ©ããŠã¿ãŸãããïŒ
æåŸã«ãä»ã®é¢æ°é©çšãšã¯ç°ãªãã®ã§ãæ£ç¢ºã«é
管ãç¶æããã®ã¯èªç¶ãªããšã ãšæããŸãã ããã¯ãã°ã§ã¯ãªãæ©èœã§ãããé¢æ°ãé©çšããä»ã®èŠåãšã¯ç°ãªããŸãã ãã®éãããããã€ãã®ãŠãŒã¹ã±ãŒã¹ã§ãããèŒãããã®ã§ãã ãŸããïŒå°ãæãæ¯ãïŒåè©ãåè©ã®åã«æ¥ãå ŽåããããŸãããããã®å€ãã¯ãçã®é¢æ°é©çšãæ±ãã«ããå Žåã®æ£ç¢ºãªæ§æç³è¡£ã§ãã é ã®ãŠã£ãºããããå²ãåœãŠx = 5
ã¯ãåè©ïŒå€ã«ãã€ã³ãïŒã®åã«åè©ïŒèšå·x
ïŒã眮ããŸãã åæ§ã«ã getfield
t.a
ã¿ã€ãã®ãã£ãŒã«ãã«ã¢ã¯ã»ã¹ããŸãã ãããŠæãæ·±ããé
åã€ã³ããã¯ã¹z[5]
ã¯ã z
ãã5çªç®ã®èŠçŽ ãåããã®ããã«ãªããäžè¬çã«getindex(z, 5)
ãããèªç¶ã§ãã
ãããåªããæ©èœã§ããå Žåã¯ã10åãŸãã¯20åã®äžçœ®æŒç®åãæå®ããŠãèªç±ã«å®çŸ©ããŠã¿ãŸãããïŒ
<|
ã ++
ã..ã®ãããªèŠæ±ãããŠããªãASCIIã®ãã®ã«å ããŠããã¹ãŠã®ãŠãã³ãŒãã®ãã®ãå«ãããšããããããã以äžã®ãã®ããããŸãã
ã¹ã¬ããå
šäœãèªãã§ããªã-ããããã èšãããã£ã
ãã€ãã§ããã®ã倧奜ãã§ãã ç§ã¯è³æ祚ãæããŸã
ãã€ã§ãäžè²«æ§ã
ç§ã¯ãããç¶æããããšãéåžžã«ç©ããã«å¥œã¿ãŸããããããäžçœ®æŒç®åã®ãŸãŸã§ããéããå®éã«ã¯æ°ã«ããŸããã ããã±ãŒãžãã€ã³ããŒãããå¿ èŠãããå Žåã¯ãé¢æ°ãã€ãã³ã°ã䜿çšããªããšæããŸããããã¯ãããŸã䟡å€ããªãããšã瀺ããŠããŸãã
ããã¯èšã£ãŠãããã®ãé©ãæå°ã®ååãã®è°è«ã¯ãå€æ§ãªãŠãŒã¶ãŒããŒã¹ã«ã€ããŠããã€ãã®æšæž¬ãããŠããã®ã§ã説åŸåããããšã¯æããŸããã äž»èª-ç®çèª-åè©èšèªã®ãã€ãã£ãã¹ããŒã«ãŒã«ãšã£ãŠããžã¥ãªã¢ã®æ§æã®ã»ãšãã©ã¯é©ãæå°ã®ååã«éåããŠãããšæããŸããé¢æ°ã®é 管ã¯ããªãå¿«é©ã§ã...
ã¹ã¬ããå šäœãèªãã§ããªã
ð
ãã€ãã§ããã®ã倧奜ãã§ã
ç¹°ãè¿ãã«ãªããŸãããç§ã¯ããã€ãã䜿çšã§ããªãããã«ããå¿ èŠããããšäž»åŒµããŠããã®ã§ã¯ãªããããã€ãã®æ¢åã®ãã€ãããã±ãŒãžã®1ã€ã§æ©èœãç°¡åã«å©çšã§ãããšäž»åŒµããŠããŸãã Baseãã€ããåé€ãããšãããã±ãŒãžã¯ãBaseãæäŸãããã®ã«æºæ ããããäžè²«æ§ãç¶æãããããããšãªããç¬èªã®ãã€ãã³ã°ã»ãã³ãã£ã¯ã¹ãããç°¡åã«å®çŸ©ã§ããŸãã
ãžã¥ãªã¢ã§ã¯ãç¬èªã®äžçœ®æŒç®åãå®çŸ©ããããšã¯ã§ããŸãã
ããã¯çå®ã§ã¯ãªã; äžçœ®æŒç®åãšããŠè§£æãããã®ã¯ãã¹ãŠãå®çŸ©ãŸãã¯åå®çŸ©ã§ããŸãã martinholtersãææããããã«ã <|
ãš++
ãåæ§ã«å©çšã§ããŸãã
ç§ã¯ããã«ã€ããŠã¯å°ãäžç«ã§ããã |>
ãéåžžã®é¢æ°åŒã³åºãæ§æããéã«ãªã£ãŠããããšããã®èŠç¹ã§ãããšããææ
ã2çªç®ã«èª¬æããŸãã é
管ã®æ倧ã®ãã¡ã³ã§ãããããšãã°sin <| x
ãèŠæ±ããŠããŸãããããã¯ãå®éã«ã¯sin(x)
ãšéè€ããŠããããã§ãã |>
ã¯ãå€ãã®æ¬åŒ§ãªãã§å·Šããå³ã«æµããããŒã¿ãç®ãè³ã§èããããå Žåã«äœ¿çšããŸãã
|>
ããã£ãšåŒ·åã«ãããã®ã§ãããããšãã°x |> f(_) + 2g(_) |> h
ãªã©ãèš±å¯ããåãªããªãã¬ãŒã¿ãŒã§ã¯ãªãããã«ããŸãã 誰ããx |> f
ãf(x)
以å€ã®äœããæå³ããããã«å®çŸ©ãããã³ã«ãç§ãã¡ã䜿çšããæŒç®åã®å
šäœçãªãã€ã³ãã¯ããããç°ãªãé åºã®åŒã³åºãæ§æã§ãããšããããšãªã®ã§ãããã¯æ¬åœã«ç§ãã€ãŸããããŸãã åŒã³åºãããªãŒããŒããŒãã§ããã®ã§ã x |> f
ãä»ã®æå³ãæã€çç±ãããããŸããã
@StefanKarpinskiãã¯ãã䜿çšãããšããã匷åãªãã€ãããã§ã«ååŸã§ããŸãã ããšãã°ã Pipe.jlãåç
§ããŠãã ãããããã¯ã説æããŠããæ§æãæ£ç¢ºã«æäŸããŸãã |>
ãæŒç®åã§ããéãïŒç§ã¯å人çã«|>
ãç¹å¥ãªå Žåã®äŸ¡å€ããããšã¯æããªãïŒããã¯ãã¯äžçœ®ã解æããä»»æã®ãã€ãã³ã°åºåãæåã䜿çšã§ããŸãã :call
ã äŸãšããŠãåæ§ã«@~
ã䜿çšããŠãã€ãããããšãã§ããŸãïŒå°ãªããšããã®èšäºã®å·çæç¹ã§ã¯ïŒã ãã®ã¬ãã«ã®æè»æ§ã¯ãJuliaã§ãã¯ãã䜿çšããå©ç¹ã®1ã€ã§ãã
Pipe.jlã®æ©èœãèšèªã«è¿œå ãããšã @pipe
ãèšè¿°ããªããŠã䜿çšã§ããããã«ãªããŸãã
|>
ãéæšå¥šã«ããäž»ãªçç±ã¯ã人ã
ãã¯ããã«å¥œãä»ã®ç®çã®ããã«æ§æãåå©çšãããå Žåã§ãã
ç§ã¯ããã€ãã³ã°ãèšèªã®äžéšã§ããå¿ èŠã¯ãªããããã±ãŒãžã«å«ãŸããŠããå¯èœæ§ãããïŒãããŠãã§ã«ååšããŠããïŒãšäž»åŒµããããšããŠãããšæããŸãã
ãããã |>
ãå¿
èŠãªãã®ãä»ã«ãªãå Žåã¯ããã®ïŒäºçŽ°ãªïŒå®çŸ©ããã®ãŸãŸã«ããŠããããšã«ã»ãšãã©å®³ã¯ãããŸããã
çŸåšãBaseã§|>
ã転çšããææ¡ã¯ãªããšæããŸãã Baseã§å®çŸ©ããªããšããç§ã®äž»åŒµã¯ãæ©èœã倱ãããšãªãäžè²«æ§ãé«ããããšãã§ãããšããããšã§ãã
ãã®æ¢åã®å®çŸ©ãå¿é ãããåé¿ãããããªãããšã§ãããã匷åãªãã€ãã³ã°ãã®ææ¡ãããã±ãŒãžã®å®è£ ãç°¡åã«ãªããŸããïŒ
@ararslan ãããã¯çå®ã§ã¯ãããŸãããäžçœ®æŒç®åãšããŠè§£æãããã®ã¯ãã¹ãŠãå®çŸ©ãŸãã¯åå®çŸ©ã§ããŸããã
ããã¥ã¢ã«ã®ã&&ããã³||æŒç®åãããããããã¯è§£æãããŸãããåå®çŸ©ããããšã¯ã§ããŸããïŒããã¯è¯ãããšã§ãïŒã ç§ã¯å¯äžã®äŸå€ãä¿¡ããŠããŸãã
ãããããè«çæŒç®åã&&ããã³|| äžçœ®ã§ãã [åé äºé é¢ä¿]ãæŒç®åãã¯ãããã§ã¯ãªãã®ã§ãç§èŠã§ã¯ééã£ãçšèªã§ãã Notã¯ãè«çãããåäœã®ïŒããã³|ãšåæ§ã®æ¹æ³ã§ã¯ãããŸããã ããã¯ãªãŒããŒããŒããèš±å¯ããŸãïŒç§ã«ã¯ããããªãããšãè¯ãéžæã§ãïŒã
@PallHaraldssonãããã¯å¶åŸ¡ãããŒã§ããã &
ã |
ã +
ãªã©ãšåãæå³ã®æŒç®åã§ã¯ãããŸããã
ã§ããã°ããã§è©±é¡ã«ãšã©ãŸããŸãããã
@tkelmanããã¯è¯ãç¹ã§ãã ãã ããå°æ¥ã®ãã€ãã³ã°æ§æã«ã¯äžäœäºææ§ãæãããããšãã§ãããšæããŸãã ããšãã°ã _
ãäºçŽãããŠããå Žåã |>
ã¯ãåŒæ°ã«_
ãå«ãŸããŠããå Žåã«ç¹å¥ãªæå³ãæã€ããšãã§ãããã以å€ã®å Žåã¯çŸåšãšåãããšãè¡ããŸãã
å¥ã®åé¡ããããŸãããªããžã§ã¯ãã«å¯ŸããŠ|>
ãæ©èœãããããã«ã |>
ãŸãã¯ãé¢æ°åŒã³åºãæŒç®åãïŒã€ãŸããããã«ã¡ãœãããè¿œå ããïŒãå®çŸ©ããŸããïŒ |>
ãé¢æ°åŒã³åºãã®çµã¿èŸŒã¿æ§æã§ããã f(x)
ãšx |> f
ãåžžã«åãã§ããããšã確èªãããšãããã¯ãªãŒã³ã«ãªãå¯èœæ§ããããŸãã
ããã§ã®ã³ã³ã»ã³ãµã¹ã¯éåžžã«æ確ã«å察ããŠããã®ã§ãå ã«é²ãã§åé¡ãéããŸãã çãããè°è«ã«æè¬ããŸãã
ç§ã¯ãã®åé¡ã解決ãããããšãç¥ã£ãŠããŸãã ãªãã¬ãŒã¿ãŒãç¶æããŠãããŠãããããšãããšèšãããã£ãã ãã§ãã
æãåèã«ãªãã³ã¡ã³ã
ãããéæšå¥šã«ããå Žåã¯ãæååé£çµã®
*
ãéæšå¥šã«ããå¿ èŠããããŸããïŒ ããã«ã¯ãstring(a, b)
ãåé·ã§ããã®ãšåæ§ã®åé¡ããããa
ãšb
ãæ°åã§ã¯ãªãããšãèãããšãé©ãæå°ã®ååã«éåããŸããããäžè¬çã«ã¯ã
*(a, b)
ãša * b
ã®ãããªè€æ°ã®åŒã³åºãèŠçŽããããšæ··ä¹±ããããããããããã¹ãŠã®äžçœ®èšæ³ãå»æ¢ããå¿ èŠããããŸããçŸåšã®3ã€ã®ç°ãªãæ§æã1ã€ã«æžãããŠãå®å šãªäžè²«æ§ãåŸãããšãã§ããŸãã éããé¿ããããã«ãé¢æ°åŒã³åºããæ¬åŒ§å ã«ç§»åããåé·ãªã³ã³ããåé€ããããšãæ€èšããŠãã ããã