рдХрд╕реНрдЯрдо рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ https://groups.google.com/forum/#!topic/julia -dev/FmvQ3Fj0hHs рдкрд░ рдПрдХ рдЪрд░реНрдЪрд╛ рд╣реИред
...
рдиреЛрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд: @johnmyleswhite рдиреЗ рдмрддрд╛рдпрд╛ рд╣реИ рдХрд┐ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдзрд╛рдЧрд╛ рдмрд╛рдЗрдХрд╢реЗрдбрд┐рдВрдЧ рдХрд╛ рдирд┐рдордВрддреНрд░рдг рд╣реИред рдХреГрдкрдпрд╛ рдирдИ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдмрдЪреЗрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдирдпрд╛ рди рд╣реЛред рдиреАрдЪреЗ рдХрдИ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ "рд╣реБрд░реНрд░реЗ" рдЗрдореЛрдЯрд┐рдХреЙрдиреНрд╕ (рд╡рд┐рд╕реНрдлреЛрдЯрдХ рд╢рдВрдХреБ) рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рдЙрди рдЖрдЗрдХрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░реНрдЪрд╛ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдФрд░ рдХреЗрд╡рд▓ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк "рдЕрдВрдЧреВрдареЗ рдКрдкрд░" рдпрд╛ "рдЕрдВрдЧреВрдареЗ рдиреАрдЪреЗ" рд╡реЛрдЯ рдХрд░ рд╕рдХреЗрдВред
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕ рдмрдЧ рдкрд░ рдЕрдк/рдбрд╛рдЙрдирд╡реЛрдЯ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдХрд╕реНрдЯрдо рдЗрдВрдлрд┐рдХреНрд╕ рдореБрд╣рд╛рд╡рд░рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдк/рдбрд╛рдЙрдирд╡реЛрдЯ @ рдЧреНрд▓реЗрди-рдУ рдХреА рдкрд╣рд▓реА рдЯрд┐рдкреНрдкрдгреА рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдмрдЧ рдореЗрдВ 3 рдбрд╛рдЙрдирд╡реЛрдЯ рдереЗ рдФрд░ 1 рдЕрдкрд╡реЛрдЯ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред)
...
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд╕реНрддрд╛рд╡ (рдХреЗрд╡рд▓ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реБрдЪрд┐):
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЬреАрдд рдЧрдпрд╛ рд╣реИ:
a |>op<| b #evaluates (in the short term) and parses (in the long term) to `op(a,b)`
рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдорд╛рдореВрд▓реА рдкрд░рд┐рд╡рд░реНрддрди рд╣реИрдВ:
<|
рдХреЛ |>
$ рд╕реЗ рдКрдкрд░ рд░рдЦреЗрдВред<|
рд╕рдореВрд╣ рдХреЛ рдмрд╛рдПрдБ рд╕реЗ рджрд╛рдПрдБ рдмрдирд╛рдПрдБред<|(a,b...)=(i...)->a(i...,b...)
рдмрдирд╛рдПрдВред (рдЬреИрд╕рд╛ рдХрд┐ рдЪрд░реНрдЪрд╛ рд╕реВрддреНрд░ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдЙрдкрдпреЛрдЧ рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рдЙрдкрд░реЛрдХреНрдд рдореБрд╣рд╛рд╡рд░реЗ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рд╣реЛрдЧрд╛)рд╡реИрдХрд▓реНрдкрд┐рдХ:
>|(a...,b)=(i...)->b(a...,i...)
рдФрд░ |<(a,b...)=a(b...)
рдирдП рдХрд╛рд░реНрдп рдмрдирд╛рдПрдБред>>|(a...,b)=(i...)->b(i...,a...)
рдФрд░ <<|(a,b...)=(i...)->a(b...,i...)
рдирдП рдХрд╛рд░реНрдп рдмрдирд╛рдПрдБред┬╗
, тБН
, рдФрд░(/рдпрд╛) pipe
|>
рдХреЗ рд▓рд┐рдП; ┬л
, тБМ
, рдФрд░(/рдпрд╛) rcurry
<|
рдХреЗ рд▓рд┐рдП; рдФрд░ (/рдпрд╛) lcurry
рдХреЗ рд▓рд┐рдП <<|
; рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рдВрдЧрд▓-рдХреИрд░реЗрдХреНрдЯрд░ рд╕рдорд╛рдирд╛рд░реНрдердХ рд╢рдмреНрдж рдХреЗ рд╕рд╛рдеред@infix
рдореИрдХреНрд░реЛ рдмрдирд╛рдПрдВ рдЬреЛ рдкрд╣рд▓реЗ рдкрд╛рд░реНрд╕рд░ рдХреЛ рдиреАрдЪреЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИредрджреАрд░реНрдШрд╛рд╡рдзрд┐:
a |>op<| b
рд╕реЗ op(a,b)
рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЦрд╛рдПрдВ, рддрд╛рдХрд┐ рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╕рдордп рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡рд░рд╣реЗрдб рд╢рд╛рдорд┐рд▓ рди рд╣реЛ, рдФрд░ рддрд╛рдХрд┐ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдВрдлрд┐рдХреНрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред (рдпрд╣ рдЗрд╕реА рддрд░рд╣ рд╣реИ рдХрд┐ рдкрд╛рд░реНрд╕рд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрд╛рдЗрдирд░реА a:b
рдФрд░ рдЯрд░реНрдирд░реА a:b:c
рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХрддрдо рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдорд┐рд▓рд╛рди рдХрд┐рдП рдЧрдП рд╕рдорд╛рдирд╛рд░реНрдереА рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдмреЗрдЬреЛрдбрд╝ рд╕рдорд╛рдирд╛рд░реНрдереА рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рддрд╛рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП a |> b ┬л c
рдХреЛ рдЕрднреА рднреА рджреЛ рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред)(https://github.com/JuliaLang/julia/issues/6946 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд)
рдЬреВрд▓рд┐рдпрд╛-рджреЗрд╡ рд╕реВрддреНрд░ рдХреЛ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рд╕реНрдЯреАрдлрди рдХреА рдореБрдЦреНрдп рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛:
рдмрд╕ рдпрд╣рд╛рдВ рдЕрдкреЗрдХреНрд╖рд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ 1.0 рд╕реЗ рдкрд╣рд▓реЗ "рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рддреНрдордХ рдирд╡рд╛рдЪрд╛рд░" рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╣реЛрдЧрд╛ред (рдПрдХрдорд╛рддреНрд░ рдЕрдкрд╡рд╛рдж рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдирдпрд╛
f.(v)
рд╡реЗрдХреНрдЯрд░рдХреГрдд рдХреЙрд▓рд┐рдВрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ред) рд╣рд╛рд▓рд╛рдВрдХрд┐ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реЛрдиреЗ рдкрд░ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рднрд╛рд╖рд╛ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред
рдЬреВрд▓рд┐рдпрд╛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рдПрдХ рдЕрдЪреНрдЫреЗ рдЕрдиреБрдкрд╛рдд рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╢рдмреНрджрд╛рд░реНрде рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдкрд░ рдКрд░реНрдЬрд╛ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рдЬреВрд▓рд┐рдпрд╛ рдХреЗ 1.0 рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реА рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд░реНрде рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдмрд╛рдХреА рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХрд╛ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЗрд╡рд▓ рд▓реЗрдЦрдХ рдХреЛ рд╕реЛрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╕рднреА рдХреЛ рдпрд╣ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрдирдХрд╛ рдХрд╛рдо рдЖрдЧреЗ рдЪрд▓рдХрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреАрд░реНрдШрд╛рд╡рдзрд┐ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ рдкрд╛рд░реНрд╕рд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдХрд╛рд░реНрдпрднрд╛рд░ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реБрдЭрд╛рдП рдЧрдП "рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ" рдкрд╛рд░реНрд╕рд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЬреЙрдирдореАрд▓реЗрд╕рд╡рд╛рдЗрдЯ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рд▓реЗрдХрд┐рди "рдорд╛рдореВрд▓реА рдкрд░рд┐рд╡рд░реНрддрди" рдФрд░ "рд╡реИрдХрд▓реНрдкрд┐рдХ" рд╕рдореВрд╣, рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБ, рдмрд╣реБрдд рдЖрддреНрдо-рдирд┐рд╣рд┐рдд рдФрд░ рдХрдо рдкреНрд░рднрд╛рд╡ рд╡рд╛рд▓реЗ рд╣реИрдВред
рд╡рд╣ рд╣реИ: рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдиреНрдпреВрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкрд╛рд░реНрд╕рд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдФрд░ рд╕рдореВрд╣реАрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдирд┐рдпрдорд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкреНрд░рдХрд╛рд░ред рдХрд┐рд╕реА рдЕрд╕рдВрдмрдВрдзрд┐рдд рдЪреАрдЬрд╝ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдПрдХ рдкрд╛рд░реНрд╕рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЗрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╕рднреА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдЕрд░реНрде рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдпрд╣ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛рдлреА рдмрджрд╕реВрд░рдд рдФрд░ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рд▓рдЧрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдлрд┐рдХреНрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕-рдорд╛рддреНрд░ рдореБрджреНрджрд╛ рд╣реИ: рдЖрдк рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ op
рдЗрдВрдлрд┐рдХреНрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЧреЛрд▓ рдЪрдХреНрдХрд░ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдпрд╣ рд╕рдм рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП |
рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ a |op| b
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред рдпрдХреАрдирди рд╕рд╛рдорд╛рдиреНрдп рдЗрдиреНрдлрд┐рдХреНрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдпрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред (рд╣рдордиреЗ рдкрд╣рд▓реЗ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рд╣реИ; рд╡реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреА рдмрд░реНрдмрд╛рджреА рдХреА рддрд░рд╣ рд▓рдЧрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реИред)
a f b
рд╕рд░рдгреА рд╕рдВрдпреЛрдЬрди рдФрд░ рдореИрдХреНрд░реЛ рдХреЙрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдЙрдкрд▓рдмреНрдз рд╣реИред
a f b
рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдирд╛рдЬреБрдХ рд▓рдЧрддрд╛ рд╣реИред рдХрд┐рд╕реА рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпреЛрдВ a^2 f b^2 f c^2
рдХрд╛рдиреВрдиреА рд╣реИ рд▓реЗрдХрд┐рди a f b c
рдФрд░ a+2 f b+2 f c+2
рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред (рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рд╡рд╣ рдЖрдЦрд┐рд░реА рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреВрд░реНрд╡-рд╕рдордп рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдмрд╛рдд рдПрдХ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ)ред
рдЬрд╣рд╛рдВ рддрдХ a |op| b
: рд╢реБрд░реВ рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛, a %op% b
, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк Google рд╕рдореВрд╣ рдереНрд░реЗрдб рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд |>
рдФрд░ <|
рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рдФрд░ рд╡реЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрдардмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ (рд╕рд╣реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдФрд░ рд╕рдореВрд╣ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╛рдиреАред ) рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдореМрдЬреВрджрд╛ рдкрд╛рд░реНрд╕рд░ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЕрд▓реНрдкрд╛рд╡рдзрд┐ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдкрд╛рд░реНрд╕рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░рджрд░реНрдж рдкреИрджрд╛ рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЬреЙрдирдорд╛рдЗрд▓реНрд╕рд╡рд╛рдЗрдЯ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдХрд╣рд╛ рдерд╛ред
рдЗрд╕рд▓рд┐рдП рдЬрдм рдореИрдВ a |op| b
рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкрд╛рд░реНрд╕рд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рд╕реНрддрд╛ рддрд▓рд╛рд╢рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╣рдо рдЕрдзрд┐рдХрддрдо рдЯрд╛рдЗрдкреЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ "рдмрд┐рдЯрд╡рд╛рдЗрдЬ рдпрд╛" рдХреЗ рдмрдЬрд╛рдп |
рдЕрд░реНрде "рдкрд╛рдЗрдк" рд╣реЛрдиреЗ рдХрд╛ рд╡рд┐рд░реЛрдз рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ a |op\\ b
рдпрд╛ a |op& b
рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
"рдкрд╛рд░реНрд╕рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░рджрд░реНрдж" рд╕рдмрд╕реЗ рдХрдо рд╕рдВрднрд╡ рдЪрд┐рдВрддрд╛ рд╣реИред
"рдкрд╛рд░реНрд╕рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░рджрд░реНрдж" рд╕рдмрд╕реЗ рдХрдо рд╕рдВрднрд╡ рдЪрд┐рдВрддрд╛ рд╣реИред
рдПрдХ рдкрд╛рд░реНрд╕рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред
|>
рдФрд░ <|
рджреЛрдиреЛрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдЪреНрдЫреЗ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреЛ рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрдЯрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рд▓рд╛рдн рд╣реИред рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХрд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХрд┐рддрдиреА рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдФрд░ рдЕрдкреНрд░рднрд╛рд╡реА рд╣реИред
рджреЛ рдЕрдиреНрдп рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрдЯрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рд╣реИред
рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рджреГрд╖реНрдЯрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА f <| y
, рдмрд╛рдЗрдирд░реА x |> f
, рдФрд░ рдЯрд░реНрдирд░реА x |> f <| z
рд╣реЛрдЧреА, рдЬрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ рджреЛ рдХреЛ рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐ рдЗрд╕реЗ рджреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ |>
рдФрд░ <|
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрд╕ рджреГрд╖реНрдЯрд┐ рдХрд╛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдкреБрд▓ рд╣реИред
рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХрд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХрд┐рддрдиреА рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдФрд░ рдЕрдкреНрд░рднрд╛рд╡реА рд╣реИред
рдпрд╣ рдПрдХ рдЙрдЪрд┐рдд рдмрд┐рдВрджреБ рд╣реИред |>
рдФрд░ <|
рдХреЛ |
рдФрд░ &
рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ? рд╡реЗ рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рджреЛрдиреЛрдВ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рд╣реЙрдХреА рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдкрд░реЗрд╢рд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ |
рдФрд░ &
рджреЛрдиреЛрдВ рдХреЛ рдЪреЛрд░реА рдХрд░рдирд╛ ASCII рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЖрд╡рдВрдЯрди рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХрдИ рдбрд┐рд▓реАрдореАрдЯрд░ рд╕рдордорд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред
рдЕрдЧрд░ рд▓реЛрдЧ рдЕрдиреНрдп рдХрд╛рд░рдгреЛрдВ рд╕реЗ x |> f <| y
рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╛рд░реНрд╕рд░ рдХреЛ |>
рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдП рдЧрдП <|
рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдп рд╕рдорд╛рди рдСрдкрд░реЗрдЯрд░ рдЬреИрд╕реЗ <
рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИред
рджреЛрдиреЛрдВ рдХреА рдЪреЛрд░реА | рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рдХрд╛ рдЕрдЪреНрдЫрд╛ рдЖрд╡рдВрдЯрди рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХрдИ рдбрд┐рд▓реАрдореАрдЯрд░ рд╕рдордорд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред
рдареАрдХ рд╣реИред
рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ >
рдФрд░ <
рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред рдПрдХ рдорд╛рдирдХ рдХреАрдмреЛрд░реНрдб рдкрд░ рд╕рдорд░реВрдкрддрд╛ рдФрд░ рдЯрд╛рдЗрдкреЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди &%
рдФрд░ %&
рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рдмрджрд╕реВрд░рдд рд╣реИ, рдЖрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдпрд╛ рдирд╣реАрдВред /|
рдФрд░ |/
рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
...
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╛рд░реНрд╕рд░ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП |> рдПрдХ рдлрд╝реНрд▓рд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП <|
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЧрд▓рдд рд╕рдордЭрд╛ рд╣реИред a |> b
рдХреЛ b(a)
рдкрд░ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред (рд╡рд┐рд╢реЗрд╖ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрд╕реНрдХрд░рдг ((x,y)->y(x))(a,b)
рд╣реЛрдЧрд╛, рдЬреЛ рдПрдХ рд╣реА рдЪреАрдЬрд╝ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рд╛рдеред)
рдП |> рдмреА рдХреЛ рдмреА (рдП) рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЖрд╣, рдареАрдХ рд╣реИ, рдорд┐рд▓ рдЧрдпрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╡рд░реНрд╖реЛрдВ рддрдХ рдХрд┐рд╕ рдкрд╛рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдмрд╛рдЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП @StefanKarpinski (рдЗрд╕ рдмрд╛рддрдЪреАрдд рдореЗрдВ рдЕрдм рддрдХ рдХреЗ рд╕рдмрд╕реЗ рд╡рд░рд┐рд╖реНрда рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ) рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд░рд╣реВрдВрдЧрд╛ред рднрд▓реЗ рд╣реА рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдореИрдВрдиреЗ рддрд░реНрдХ рджрд┐рдпрд╛ рд╣реИ (рдЬреИрд╕реЗ a f b
ред)
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЕрдкреАрд▓ рдХрд░рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рджрд┐рдП рдЧрдП рд╣реИрдВ:
a |>op<| b
(рд╡рд░реНрддрдорд╛рди |>
рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝рдХрд░)
a |{ op }| b
(рдХрдИ рд╕рд╛рдорд╛рдиреНрдп рдХреАрдмреЛрд░реНрдб рдкрд░ рдкрд╛рд╕ рдФрд░ рд╕рдорд╛рди рд╢рд┐рдлреНрдЯ рд╕реНрдерд┐рддрд┐, рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рдирд╣реАрдВред рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдХреЗ рд░реВрдк рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдмред)
a \| op |\ b
рдпрд╛ a /| op |/ b
рдпрд╛ рдЙрд╕рдХреЗ рд╕рдВрдпреЛрдЬрди
a $% op %$ b
(рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдпреЛрдЧреНрдп, рдЖрд░-рдкреНрд░реЗрд░рд┐рддред рд▓реЗрдХрд┐рди рдереЛрдбрд╝реЗ рдмрджрд╕реВрд░рддред)
a |% op %| b
a |- op -| b
a |: op :| b
a | op \\ b
a | op ||| b
a op b
рд╕реНрдЯреАрдлрди рдореБрдЭрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╕реАрдирд┐рдпрд░ рдирд╣реАрдВ рд╣реИрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЕрднреА-рдЕрднреА рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ BDFL рд╢рдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдХреЛ рдирд╛рдорд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рд╣реИ! ;)
a @op@ b
?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рд╡реЛрдЯ \|
, |\
, /|
, рдФрд░ |/
рдХреЗ рд╕рднреА 4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ, рдХрд░реА рдХреЗ рд▓рд┐рдП рдКрдкрд░; рд╕рдорд╛рд░реЛрд╣ рдХреА рдУрд░ рдкрдЯреНрдЯреАред рдЗрд╕рд▓рд┐рдП:
a \| f
(рдпрд╛ f |/ a
) -> f(a)
a /| f
(рдпрд╛ f |\\ a
) -> (b...)->f(a,b...)
f |\ b
(рдпрд╛ b //| f
) -> (a...)->f(a...,b)
рдФрд░ рдЗрд╕ рддрд░рд╣:
a \| f |\ b
(рдпрд╛ a /| f |/ b
) -> f(a,b)
a \| f |\ b |\ c
(рдпрд╛ a /| b /| f |/ c
) -> f(a,b,c)
рд╢рд╛рдпрдж |/
рдХреЛ рдЫреЛрдбрд╝рдХрд░, 4 рдореБрдЦреНрдп рдСрдкрд░реЗрдЯрд░реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЕрддрд┐рд░реЗрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧреИрд░-рдкрд╛рдпрдердирд┐рдХ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддрд╛рд░реНрдХрд┐рдХ рд╕реНрд╡рдЪреНрдЫрддрд╛ рдЬреВрд▓рд┐рдпрди рд╣реИред рдФрд░ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдЗрдВрдлрд┐рдХреНрд╕ рдореБрд╣рд╛рд╡рд░реЗ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ; рд╡реЗ рджреЛрдиреЛрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкрдардиреАрдп рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ рд╕реАрдЦ рд▓реЗрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рджреЛрдиреЛрдВ рдХреЛ рд╕рдордЭ рдЬрд╛рддреЗ рд╣реИрдВред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд╕рднреА рд╕реНрд▓реИрд╢ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдКрдкрд░ рддреАрд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдФрд░ рдХрд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рд╣реЛред
рдореИрдВ рдЕрднреА рднреА рдСрди рд╣рд╛рдИ рд╕реЗ рд╢рдмреНрдж рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдореЗрд░реА рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдЕрдирд╛рдбрд╝реАрдкрди рдХреЗ рд▓рд┐рдП рдореИрдВ рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ)ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрд╕ рдмрд╛рдЗрдХрд╢реЗрдб рд╕реЗ рд▓рдВрдмрд╛ рдХреЛрдИ рднреА рдЗрд╕ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рджреЛ рдирдП рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдПрдХ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдкреИрдЪ (рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдФрд░/рдпрд╛ рдПрдХ рдЙрдЪрд┐рдд (рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рд╣рдо рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╣реЛ BDFL рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ :)
рдореИрдВрдиреЗ рдЕрднреА рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдХреБрдЫ рддреНрд╡рд░рд┐рдд рдЪреАрдЬреЗрдВ рдиреЛрдЯ рдХрд░реВрдВрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╕рдВрдХреЗрддрди рдХрд╛ рджреВрд╕рд░рд╛ рд▓рд╛рдн ("рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдЙрдкрдпреЛрдЧ") рдпрд╣ рд╣реИ рдХрд┐ <|
рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ, A
, рдФрд░ рдЙрди рд╕рднреА рдХреЛ рдмрд╛рдИрдВ рдУрд░ 10 рддрдХ рдкреИрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрднреА map(i->lpad(i,10),A)
рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдард┐рди рд╣реИред рдЗрд╕ рд╕рдВрдХреЗрддрди рдХреЗ рд╕рд╛рде, рдпрд╣ map(lpad<|10,A)
рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ, рдХрд╛рдлреА рд╕рд╛рдл рд╣реИред
рджреВрд╕рд░рд╛, рдЗрд╕рдХреЗ рдкреАрдЫреЗ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдВрдХрди рдХреЛ рд╕реБрд╕рдВрдЧрдд рд░рдЦрд╛ рдЬрд╛рдПред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ |>
рдСрдкрд░реЗрдЯрд░ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ "рдлрд┐рдХреНрд╕" рдХреЛ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рд╕реЗ рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрдж рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдиреЛрдЯреЗрд╢рди рдмрдврд╝рд╛рддрд╛ рд╣реИред
рддреАрд╕рд░рд╛, рдкреНрд░рддреНрдпрдХреНрд╖ рдЗрдиреНрдлрд┐рдХреНрд╕ рдХреЛ a f b
рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИред a + b
рдФрд░ a * b
рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕рдорд╛рди рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ +
рдФрд░ *
рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рд╣реИрдВ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╡рд░реАрдпрддрд╛ рд░рдЦрддреЗ рд╣реИрдВред рд╡рд╣, рдпрд╛ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рднреНрд░рдо рдкреИрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ,
A
, рдФрд░ рдЙрди рд╕рднреА рдХреЛ рдмрд╛рдИрдВ рдУрд░ рд╕реЗ 10 рддрдХ рдкреИрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЕрднреА, рдЖрдкрдХреЛmap(i->lpad(i,10),A)
рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдХрдард┐рди рд╣реИред рдЗрд╕ рд╕рдВрдХреЗрддрди рдХреЗ рд╕рд╛рде, рдпрд╣map(lpad<|10,A)
рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рд╕рд╛рдл рд╣реИред
рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдВред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣реИ - рдореБрдЭреЗ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ - ASCII рд╕рд▓рд╛рдж, рдкрд░реНрд▓ рдФрд░ рдПрдкреАрдПрд▓ рдХреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЕрдкрд░рд╛рдзреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд, рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдорд┐рд╕рд╛рд▓ рдХреЗ рдмрд┐рдирд╛ рдЖрдХрд╕реНрдорд┐рдХ рдкрд╛рдардХ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕, рдЬрдмрдХрд┐ рдХреБрдЫ рд╡рд░реНрдг рд▓рдВрдмреЗ (рдкрд╛рдВрдЪ?), рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдЬреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ i->expr
рдПрдХ рд▓реИрдореНрдмреНрдбрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ - рдЬреЛ рдХрд┐ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдФрд░ рдмрдврд╝рддреЗ рд╕реЗрдЯ рдореЗрдВ рд╣реИред
a + b рдФрд░ a * b рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕рдорд╛рди рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ + рдФрд░ * рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рд╣реИрдВ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╡рд╣, рдпрд╛ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рднреНрд░рдо рдкреИрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ; рд╣рдо рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ a f b
infix рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреНрдпрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдореМрдЬреВрджрд╛ рд╡рд░реАрдпрддрд╛ рд╕реНрддрд░реЛрдВ рдХреЛ рднреА рдмрдирд╛рдП рд░рдЦреЗрдВред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд╛рдо рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ; "+" рдирд╛рдордХ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ "+" рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдЧреАред
рд╣рд╛рдВ, рд╣рдо рдЗрд╕реЗ 1+2 in 1+2
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ; рд╣рдо рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ afb infix рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреНрдпрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдореМрдЬреВрджрд╛ рд╡рд░реАрдпрддрд╛ рд╕реНрддрд░реЛрдВ рдХреЛ рднреА рдмрдирд╛рдП рд░рдЦреЗрдВред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд╛рдо рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИ; "+" рдирд╛рдордХ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ "+" рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдЧреАред
рдореЗрд░рд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рдпрд╣ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдореБрджреНрджреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ "рдпрд╛ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рднреНрд░рдо рдкреИрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ"ред рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ ┬ж
рдФрд░ тИе
рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдЗрддрдиреЗ рднрд┐рдиреНрди рдирд╣реАрдВ рджрд┐рдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ рднреА рдПрдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рдирд╣реАрдВ рд╣реИред
рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реВрдВред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣реИ - рдореБрдЭреЗ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ - ASCII рд╕рд▓рд╛рдж, рдкрд░реНрд▓ рдФрд░ рдПрдкреАрдПрд▓ рдХреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдЕрдкрд░рд╛рдзреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд, рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдорд┐рд╕рд╛рд▓ рдХреЗ рдмрд┐рдирд╛ рдЖрдХрд╕реНрдорд┐рдХ рдкрд╛рдардХ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╕рд┐рдВрдЯреИрдХреНрд╕, рдЬрдмрдХрд┐ рдХреБрдЫ рд╡рд░реНрдг рд▓рдВрдмреЗ (рдкрд╛рдВрдЪ?), рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдЬреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ i->expr рдПрдХ рд▓реИрдореНрдмреНрдбрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реИ - рдЬреЛ рдХрд┐ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рдФрд░ рдмрдврд╝рддреЗ рд╕реЗрдЯ рдореЗрдВ рд╣реИред
рд╢рд╛рдпрдж рдореИрдВ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕ рдкрд░ рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдСрдкрд░реЗрд╢рди рдХреЛ "lpad by 10" рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ i->lpad(i,10)
рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред рдФрд░ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ, lpad<|10
рд╡рд╣ рдирд┐рдХрдЯрддрдо рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЧреИрд░-рд╕рдВрджрд░реНрдн-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╢рд╛рдпрдж рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ рдЕрдЧрд░ рдореИрдВ рд╡рд░реНрдгрди рдХрд░реВрдВ рдХрд┐ рдореИрдВ рдХрд╣рд╛рдВ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдПрдХ рдЧрдгрд┐рддрдЬреНрдЮ рдФрд░ рдЧрдгрд┐рддреАрдп рднреМрддрд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рдиреА рд╣реВрдВ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдФрд░ "рд▓реИрдореНрдмреНрдбрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕", рдЬрдмрдХрд┐ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рдордЭрджрд╛рд░ рд╣реИ, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдХрдо рдЕрдиреБрднрд╡реА рд╣реИрдВред рдЬреВрд▓рд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реЛрдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ, рдЗрд╕рд▓рд┐рдП MATLAB рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рд╕рдорд╛рдирддрд╛ рд╣реИред
рдореБрдЭреЗ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рд┐рдП - lpad<|10
, x|>sin|>exp
рд╕реЗ рдЕрдзрд┐рдХ "ASCII рд╕рд▓рд╛рдж" рдХреИрд╕рд╛ рд╣реИ? рдлрд┐рд░ рднреА |>
рд╕рдВрдХреЗрддрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ |
рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдИрдВ рдУрд░ рдХреЗ рддрд░реНрдХ рдХреЛ рджрд╛рдИрдВ рдУрд░ рдХрдорд╛рдВрдб рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ "рдкрд╛рдЗрдк" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ _little_ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдХреБрд╢рд▓ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдЙрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, |>
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рддреАрд░ рдХреА рддрд░рд╣ рдЕрд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ <|
рд╕рдВрдХреЗрддрди рдХрд╛ рдПрдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред
рдХреБрдЫ рдЕрдиреНрдп рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдВ, рдЬреИрд╕реЗ %func%
, рдЬреЛ _does_ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдорд┐рд╕рд╛рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЬреНрдЮрд╛рди рдирд╣реАрдВ рд╣реИред
рдзреНрдпрд╛рди рд░рд╣реЗ, рдореИрдВрдиреЗ рдкреБрд░рд╛рдиреА рдЪрд░реНрдЪрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдереЛрдбрд╝рд╛ рдкреАрдЫреЗ рдореБрдбрд╝рдХрд░ рджреЗрдЦрд╛, рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдПрдХ рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд╕реНрдХреЗрд▓ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ a |> b c d рдХрд╛ рдЙрдкрдпреЛрдЧ a |> b c d
b(a,c,d)
рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХреЗ рдмрд╛рдж рдХреЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ "рдкреИрд░рд╛рдореАрдЯрд░" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ - map(lpad 10,A)
ред рдпреВрдирд░реА рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, map(+ 10,A)
рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ i->+(i,10)
рдХреЗ рдмрдЬрд╛рдп "+10" рдкрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░реЗрдЧрд╛ред
a f b
рдкрд░: рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдореБрджреНрджреЗ рдЧреНрд▓реЗрди-рдУ рдХреЗ рд╕реБрдЭрд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЗрдВрдлрд┐рдХреНрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рд╕рдмрд╕реЗ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддрдм рддрдХ рд╡реЗ рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВред рдХрд╣рддреЗ рд╣реИрдВ, рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреВрд░реНрд╡-рд╕рдордп рджреЗрддреЗ рд╣реИрдВред рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
a^2 f b^2
=> f(a^2,b^2)
a+2 f b+2
=> a+f(2,b)+2
a^2 f^2 b^2
=> (f^2)(a^2,b^2)
a f+2 b
=> рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐?
рдпрд╣ рдПрдХ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рд░реНрд╕рд░ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрд╕ рдЕрд░реНрде рдореЗрдВ рд╕рд┐рд░рджрд░реНрдж рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдореБрд╣рд╛рд╡рд░реЗ рдХреЗ рдЖрдХрд╕реНрдорд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реИред
рдХрд░реА рдореБрд╣рд╛рд╡рд░реЗ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд░
рдореИрдВ рдЧреНрд▓реЗрди-рдУ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ (i)->lpad(i,10)
рдХреЗрд╡рд▓ lpad<|10
рд╕реЗ рднреА рдмрджрддрд░ рд╣реИ (рдпрд╛, рдпрджрд┐ рд╣рдо рдРрд╕рд╛ рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ lpad |\ 10
, рдпрд╛ рдЬреЛ рднреА рд╣реЛ)ред i
рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░реА рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдмреЛрдЭ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрд░реЛрдд рд╣реИ; рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВ рдХрд╕рдо рдЦрд╛рддрд╛ рд╣реВрдБ рдХрд┐ рдЬрдм рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдЯрд╛рдЗрдк рдХрд░ рд░рд╣рд╛ рдерд╛, рдореИрдВрдиреЗ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ (i)->lpad(x,10)
рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдерд╛ред рддреЛ, рдПрдХ рдЗрдВрдлрд┐рдХреНрд╕ рдХрд░реА рдСрдкрд░реЗрд╢рди рдХрд░рдирд╛ рдореБрдЭреЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд▓рдЧрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдпрд╣ рдЗрд░рд╛рджрд╛ рд╣реИ, рддреЛ рд╣рдо рдЬрд┐рд╕ рднреА рдЗрдВрдлрд┐рдХреНрд╕ рдореБрд╣рд╛рд╡рд░реЗ рдкрд░ рд╕рдордЭреМрддрд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд░реА рдСрдкрд░реЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЧрд░ рдпрд╣ a f b
рд╣реИ, рддреЛ lpad rcurry 10
рдЬреИрд╕рд╛ рдХреБрдЫ рдареАрдХ рд░рд╣реЗрдЧрд╛ред рдмрд┐рдВрджреБ рдкрдардиреАрдпрддрд╛ рд╣реИ, рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдирд╣реАрдВред рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ <|
рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдХрдордЬреЛрд░ рддрд░реНрдХ рд╣реИред
a |> b c d
. рдкрд░
рдореБрдЭреЗ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ |>
рджреЛрдиреЛрдВ рддрд░рдл рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХреЗрдВ, рдЗрд╕рд▓рд┐рдП a b |> f c d
=> f(a,b,c,d)
ред
(рдиреЛрдЯ: рдпрджрд┐ рдореЗрд░реЗ рджреЛрдиреЛрдВ рд╕реБрдЭрд╛рд╡ a b |> f c d
рдФрд░ рдЧреНрд▓реЗрди-рдУ рдХреЗ map(lpad 10,A)
, рддреЛ рдпрд╣ рдПрдХ рдХреЛрдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рдмрдирд╛рддрд╛ рд╣реИ: (a b) |> f c d
=> f((x)->a(x,b),c,d)
ред рд▓реЗрдХрд┐рди рдореИрдВ рд╕реЛрдЪреЗрдВ рдХрд┐ рдпрд╣ рд╕рд╣рдиреАрдп рд╣реИред)
рдпрд╣ рдЕрднреА рднреА a f b
рдХреЗ рд░реВрдк рдореЗрдВ рдСрдкрд░реЗрдЯрд░ рд╡рд░реАрдпрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдзрд┐рдХ рд╕рд╣рдиреАрдп рд╣реИрдВ рдпрджрд┐ рдЖрдк рдХреЗ рд╕рд╛рде
рдХреЗ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдСрдкрд░реЗрдЯрд░
|>
рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред ред
0.5 рдкрд░ lpad.(["foo", "bar"], 10)
рдЖрдЬрд╝рдорд╛рдПрдВред рдореМрдЬреВрджрд╛ |>
рд╕рднреА рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред
@tkelman : рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрдпреЛрдЧ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдореЗрдВ рдореМрдЬреВрджрд╛ |>
рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреИрд╕реЗ?
рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдореМрдЬреВрджрд╛ |>
рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
0.5 рдкрд░
lpad.(["foo", "bar"], 10)
рдЖрдЬрд╝рдорд╛рдПрдВред рдореМрдЬреВрджрд╛|>
рд╕рднреА рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрд┐рдВрджреБ рдЪреВрдХ рдЧрдП рд╣реИрдВред рд╣рд╛рдБ, func.()
рдЕрдВрдХрди рдЕрдЪреНрдЫрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ map
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдХреЛрдИ рднреА рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕ рд╕реЗрдЯрдЕрдк рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрдЧрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдореЗрд░реА рдмрд╛рдд рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдХреБрдЫ рд╕рдВрджрд░реНрдн рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЙрдирдХреЗ рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдгрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЬреЛ рдЕрдзрд┐рдХ рд╕рд╛рдл рдФрд░ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд▓рдЧрддрд╛ рд╣реИ: sort(A,by=i->lcm(i,10))
рдпрд╛ sort(A,by=lcm 10)
?
рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рднреА рддрд░реАрдХрд╛ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬреЛ рдЧреНрд▓реЗрди-рдУ <|
рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдХрдо рд╕реЗ рдХрдо рд╡рд╣ sort(A,by=lcm |> currywith 10)
рдЬреИрд╕рд╛ рдХреБрдЫ рд▓рд┐рдЦ рд╕рдХреЗ a
... f
... b
=> f(a,b)
рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рд╣реИред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдореМрдЬреВрджрд╛ |>
рдпрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд <|
рд╕рд╛рд░реНрдердХ рдСрдкрд░реЗрдЯрд░ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдЙрд╕ рдмрд┐рдВрджреБ рд╕реЗ рдХреБрдЫ рд╕рдВрдмрдВрдз рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЗрдП рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╡рд┐рдЪрд▓рд┐рдд рди рд╣реЛрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ a |> b c
рдкреНрд░рд╕реНрддрд╛рд╡ рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред рдпрд╣ рд╣рд╛рд╕реНрдХреЗрд▓ рд╕реЗ рдореМрдЬреВрджрд╛ рд╕рдореНрдореЗрд▓рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ; рдпрд╣ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рдореМрдЬреВрджрд╛ |>
рдСрдкрд░реЗрдЯрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ; рдпрд╣ рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрдардиреАрдп рдФрд░ рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди-рд╕реЗ-рдкреНрд░рдХрд╛рд░ рджреЛрдиреЛрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреЛрдВ рддрдХ рдлреИрд▓рд╛ рд╣реБрдЖ рд╣реИ, рдпрд╣ рдЧреМрдг рд╣реИред рдпрджрд┐ рдЖрдк рдЕрд╕рд╣рдордд рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдХрдо рд╕реЗ рдХрдо рдореВрд▓ рдореБрд╣рд╛рд╡рд░реЗ рдкрд░ рдЕрдкрдиреА рднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдВ, рди рдХрд┐ рдХреЗрд╡рд▓ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдорд╛рдзреНрдпрдорд┐рдХ рдЙрдкрдпреЛрдЧреЛрдВ рдкрд░ред
рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рдпрд╣ рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдореБрджреНрджреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ "рдпрд╛ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рднреНрд░рдо рдкреИрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ"ред
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ a f b
рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рддрдп рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП in
рддреБрд▓рдирд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдлреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрдВрдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдлрд╝рдВрдХреНрд╢рди рддреБрд▓рдирд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ рдХреЛрдИ рд╕рдВрдЧрддрд┐ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИред рд╡рд┐рднрд┐рдиреНрди рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реЛрддреА рд╣реИред a f b
рдЬреЛрдбрд╝рдирд╛ рд╣рдорд╛рд░реЗ рд╣рд╛рде рдХреЛ +
рдФрд░ *
рдХреЛ рд╕рдорд╛рди рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ |>
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреБрд▓рдирд╛ рдХреЗ рдирд┐рдХрдЯ рдкреВрд░реНрд╡рддрд╛ рд░рдЦрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд▓рд┐рдП, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрд╖реНрдардХ рдареАрдХ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдореБрдЭрд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╣рдо a |> f b
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдорд╛рди рдСрдкрд░реЗрдЯрд░ |+>
, |*>
, рдФрд░ |^>
рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ |>
рдЬреИрд╕рд╛ рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдХреЗрдВрджреНрд░реАрдп рдСрдкрд░реЗрдЯрд░ рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдереАред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╕реНрдЯрдо рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЛрд╖реНрдардХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреИрд╕реЗ (a f b)
ред
рд╕рдВрдмрдВрдзрд┐рдд рдЪрд░реНрдЪрд╛: https://github.com/JuliaLang/julia/issues/554 , https://github.com/JuliaLang/julia/issues/5571 , https://github.com/JuliaLang/julia/pull/14476 , https://github.com/JuliaLang/julia/issues/11608 , рдФрд░ https://github.com/JuliaLang/julia/issues/15612ред
рдореБрдЭреЗ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рд┐рдП - lpad<|10, x|>sin|>exp рд╕реЗ рдЕрдзрд┐рдХ "ASCII рд╕рд▓рд╛рдж" рдХреИрд╕рд╛ рд╣реИ? рдлрд┐рд░ рднреА |> рд╕рдВрдХреЗрддрди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @tkelman
рддрд░реНрдХ рджреЗрддрд╛ рд╣реИ
рд╣рдореЗрдВ рдореМрдЬреВрджрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП |>ред
рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ _both_ lpad<|10
рдФрд░ x|>sin|>exp
ASCII-рд╕рд▓рд╛рдж рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрджреНрдпрдо :)ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @toivoh рдХрд╛ (a f b)
рдЕрдирд┐рд╡рд╛рд░реНрдп рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рд╛рде, рдЕрдм рддрдХ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред
https://github.com/JuliaLang/julia/issues/11608 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ https://github.com/JuliaLang/julia/issues/4882 рдФрд░ https://github.com/JuliaLang/julia/pull рднреА /14653): рдпрджрд┐ (a f b)
=> f(a,b)
, рддреЛ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдпрджрд┐ (a <strong i="8">@m</strong> b)
=> (<strong i="10">@m</strong> a b)
ред рдпрд╣ рдореМрдЬреВрджрд╛ рд╡рд┐рд╢реЗрд╖ рдХреЗрд╕ рдореИрдХреНрд░реЛ рд▓реЙрдЬрд┐рдХ рдХреЛ y ~ a*x+b
рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢реА) (y @~ a*x+b)
$ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
рд╕рд╛рде рд╣реА, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрдиреНрдлрд┐рдХреНрд╕ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП "рдЖрд╡рд╢реНрдпрдХ рдорд╛рддрд╛-рдкрд┐рддрд╛" рдкрд╕рдВрджреАрджрд╛ рдореБрд╣рд╛рд╡рд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХрд╣рдиреЗ рдХреЗ рдмрдЬрд╛рдп (рдПрдХ рдмреЗрд╡рдХреВрдл рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) a + b = string(a) * string(b)
, рдЖрдкрдХреЛ (a + b) = string(a) * string(b)
рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд▓рд┐рдВрдЯ рдЯреВрд▓реНрд╕, рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛)ред рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдВрдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП "рдкреИрд░реЗрдВрд╕ рдЖрд╡рд╢реНрдпрдХ" рд╡рд┐рдХрд▓реНрдк рдЪреБрдирдиреЗ рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдореБрд╣рд╛рд╡рд░рд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдПрд▓рдПрдЪрдПрд╕ рдкрд░ рдЗрдВрдлрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЧрд▓рддреА рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ рдкреНрд░рдпреЛрдЬрдиред
рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЗрдВрдлрд┐рдХреНрд╕ (рдЙрдкрд╕рд░реНрдЧ рдХреЗ рдмрдЬрд╛рдп) рд▓рд╛рдЧреВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ,
рддреЛ рдпрд╣ рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╣реИ, рдФрд░ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдХреА рддрд░рд╣ рджрд┐рдЦрдирд╛ рдФрд░ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпреВрдирд┐рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред
рдЪреВрдВрдХрд┐ https://github.com/JuliaLang/julia/issues/552
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рдЖрдк рдЦреЛрдЬрд╢рдмреНрджреЛрдВ рдХреЛ рдореВрд▓ рд╕реБрдЭрд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХреЗрдВред
рддреЛ рд╣рдо, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1 тКХтВВ 1 == 0
. рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рдереЗ
рдЖрдкрдХреЗ рдЗрдиреНрдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдордирдорд╛рдирд╛ рдирд╛рдо рд░рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред
рдПрдХ рдСрдкрд░реЗрдЯрд░ рдХреА рддрд░рд╣ рджрд┐рдЦрдирд╛ рдФрд░ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдПрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдпреВрдирд┐рдХреЛрдб рдХрд╛ рдПрдХ рд╡рд░реНрдг, рдпрд╛ рдПрдХ рдкреВрд░реНрд╡рд╕рд░реНрдЧ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡реЗ рдРрд╕реЗ рд╕рдореНрдореЗрд▓рди рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдВ, рди рдХрд┐ рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ #552 рдХрд╣рд╛рдиреА рдХрд╛ рдЕрдВрдд рд╣реИ; рдпрджрд┐ рджрд░реНрдЬрдиреЛрдВ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рдСрдкрд░реЗрдЯрд░ рд╣реИрдВ, рддреЛ рдЕрдзрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдХреЗрд╡рд▓ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
...
рдореЗрд░реЗ рд▓рд┐рдП, (a f b)
(рдФрд░ (a <strong i="10">@m</strong> b)
) рдкреНрд░рд╕реНрддрд╛рд╡ рдЗрд╕ рдмрдЧ рдореЗрдВ рдмрд╛рдХреА рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рд╕реЗ рдКрдкрд░ рд╣реИред рдореИрдВ рд▓рдЧрднрдЧ рдПрдХ рдкреИрдЪ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд▓рдЪрд╛ рд░рд╣рд╛ рд╣реВрдБред
(a f b)
=> f(a,b)
(a f b c d)
=> f(a,b,c,d)
(a f)
=>рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐
(a+2 f+2 b+2)
=> (f+2)(a+2,b+2)
(t1=a t2=f t3=b)
=> (t1=f)((t2=a),(t3=b))
(рдореИрдХреНрд░реЛрдЬрд╝ рдХреА рддрд░рд╣ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдиреНрдпреВрдирддрдо рд╕рдВрднрд╡ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ)
...
рдХреНрдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдкреИрдЪ рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рдЕрдиреБрдЪрд┐рдд рд╣реЛрдЧрд╛?
рдореИрдВ рдкрд┐рдЫрд▓реЗ рджреЛ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдпрд╛:
(a+2 f+2 b+2)=>(f+2)(a+2,b+2)
(t1=a t2=f t3=b)=>(t1=f)((t2=a),(t3=b))
рдореБрдЭреЗ (a f b c d)
рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд╣реБрдд рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдЪреВрдБрдХрд┐ 1 + 2 + 3
рдХреЛ +(1,2,3)
рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ f(a,b,c)
рдХреЛ (a f b f c)
рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдиреБрдордд рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╕реНрдЯрдо рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ (a f b c d)
рдХреЗ рд╕рд╛рде рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛрддреА рд╣реИ рддреЛ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ - рдмреНрд░реИрдХреЗрдЯреНрд╕ рдХреЗ рдирд┐рд░рд╛рд╢ рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдмреНрд░реИрдХреЗрдЯ рдЕрдиреНрдп рдмреНрд░реИрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЗрдВрдлрд┐рдХреНрд╕ рдФрд░ рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕рд┐рдВрдЧ ( |>
) рдСрдкрд░реЗрдЯрд░ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИрдВред рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рд░ рдмрд╛рд░ рдмреНрд░реИрдХреЗрдЯ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛, рд╕рд╛рдл рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛, рдпрд╣ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдЫреЛрдбрд╝рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЗрд╕реЗ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдмрдирд╛рдирд╛ред рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ f.(a,b)
0.5 рдореЗрдВ рдПрдХ рдЕрдВрдХрди рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рддрд╛рдХрд┐ f
рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рддрд░реНрдХреЛрдВ рдкрд░ рддрддреНрд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛ рд╕рдХреЗред рдЗрдВрдлрд┐рдХреНрд╕ рдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд╛рдл рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЕрдЧрд░ рдпрд╣ (a f b)
рд╣реИред рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛, рдЗрд╕реЗ (a .f b)
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рд╕рдорд░реВрдкрддрд╛ рдХреА рд╕реБрдВрджрд░рддрд╛ рдЦреЛ рджреЗрддрд╛ рд╣реИ рдЬреЛ .(
.+
рдФрд░ .*
рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд╛рд╕реНрдХреЗрд▓ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред #6946 рдкрд░ рд╢рд╢рд┐ рдиреЗ рд╡рд╣ рдмрд┐рдВрджреБ рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рдХрд╛ рдпрд╣рд╛рдБ рд╕рдордХрдХреНрд╖ рд╣реИред рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ, рдЖрдк circle 10 |> move 0 0 |> animate "scale" "ease"
рд▓рд┐рдЦреЗрдВрдЧреЗред рдЗрд╕ рд╕рдВрдХреЗрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдпрд╣ ((circle(10) move 0 0) animate "scale" "ease")
рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ animate(move(circle(10),0,0),"scale","ease")
рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдк |>
рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдордВрдбрд▓реА рдХреЛ рдХрдИ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХреЙрдкреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ circle 10 .|> copy [1 15 50] [3 14 25]
рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ, рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд╛рдл рддрд░реАрдХрд╛ рд╣реИ - рдФрд░ рдлрд┐рд░, рдХреЛрд╖реНрдардХ рдСрдкрд░реЗрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЗ рдХреНрд░рдо рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЕрдкрдиреА рд╕рд╛рдорд╛рдиреНрдп рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред
рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдмрддрд╛рдпрд╛ рд╣реИ, a|>f b c
рдореЗрдВ рдПрдХ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рднреА рд▓рд╛рдн рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╕рдорд╛рди рдиреЛрдЯреЗрд╢рди рдХрд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - f b c
"рдлрд╝рдВрдХреНрд╢рди f
рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕ рдХрд░реЗрдЧрд╛ рдкреИрд░рд╛рдореАрдЯрд░ b
рдФрд░ c
рд╕реЗрдЯ), рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ i->f(i,b,c)
рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ред рдпрд╣ рдЗрд╕реЗ рди рдХреЗрд╡рд▓ рдЗрдВрдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЖрдк рдкрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдЗрдирдмрд┐рд▓реНрдЯ рдлрд╝рдВрдХреНрд╢рди) (рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдорд╛рдирдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рд╣реИ)ред
|>
рдпрд╣ рднреА рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдХрд╛рд░реНрдп рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕, рдХрд╣реЗрдВ, (tissue wash fire dirty metal)
, рддреЛ рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ, wash
рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реЛрдЧрд╛ред рджреВрд╕рд░реА рдУрд░, tissue|>wash fire dirty metal
рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рдВрдХреЗрддрдХ рд╣реИ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рд╣реИ " wash
рдлрд╝рдВрдХреНрд╢рди рд╣реИ"ред
рдХреБрдЫ рдирд╡реАрдирддрдо рдЖрдкрддреНрддрд┐рдпрд╛рдВ рдореБрдЭреЗ рдпрд╣ рдХрд╣рдиреЗ рдХреА рддрд░рд╣ рд▓рдЧрддреА рд╣реИрдВ "рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!" рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ: рдмреЗрд╢рдХ рдЖрдк рдХрд░ рд╕рдХрддреЗ рдереЗред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдардиреАрдп рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдХрд╛рдо рд╡реИрдз рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ; рдЧрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░рдВрдкрд░рд╛рдПрдВ/рдореБрд╣рд╛рд╡рд░реЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╕реАрдорди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ:
рдореИрдВ рдкрд┐рдЫрд▓реЗ рджреЛ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдпрд╛:
рдпреЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИрдВ; рд╡реЗ рдХреЗрд╡рд▓ рдкреВрд░реНрд╡рддрд╛ рдирд┐рдпрдореЛрдВ рдХреЗ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ рджреЛ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рджреБрд░реБрдкрдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдпреЛрдЧреНрдп рд╣реЛрдВрдЧреЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐ (a^2 р▓а_р▓а b^2)
=> р▓а_р▓а(a^2,b^2)
рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдкрд╖реНрдЯ рд╣реИред
f(a,b,c) рдХреЛ (afbfc) рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
(a f b c d)
рдХрд╛ рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рдмрд╛рдж рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИ рддреЛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд▓рдЯрдХрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред
[рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
push!
]рдЬрдмрдХрд┐ (a f b f c)
рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЕрдЧрд░ f
+
рдХреА рддрд░рд╣ рдереЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрдЯрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ +
рдХреА рддрд░рд╣ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣рдорд╛рд░рд╛ рдореЙрдбрд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛ рддреЛ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛
рджреЛрдмрд╛рд░рд╛, рдореЗрд░рд╛ рдЬрд╡рд╛рдм рд╣реЛрдЧрд╛, "рддреЛ рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рди рдХрд░реЗрдВ"ред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо f
a / (b + f(c,d^e))
рдЬреИрд╕реА рдЬрдЯрд┐рд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред @toivoh рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ, рд╡рд╣ a / (b + (c f d^e))
рд╣реЛрдЧрд╛ред рд╣рд╛рд╕реНрдХреЗрд▓-рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ, рдпрд╣ a / (b + (c |> f d^e))
рдпрд╛ "рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда" рд╣реЛрдЧрд╛, рдпрджрд┐ |>
рдЗрд╕ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рддрд╛ рдмрджрд▓ рджреА рдЧрдИ рдереА, a / (b + c |> f d^e)
ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @toivoh рдпрд╣рд╛рдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрддрдирд╛ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИред
(tissue wash fire dirty metal)
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рдкрд░рдВрдкрд░рд╛ рдереА рдХрд┐ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдпреВрдирд┐рдХреЛрдб рдХрд╛ рдПрдХ рд╡рд░реНрдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдПрдХ рдкреВрд░реНрд╡рд╕рд░реНрдЧ рдпрд╛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЙрдкрд░реЛрдХреНрдд (tissue wash_ fire dirty metal)
рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реЛрдЧрд╛ рдЬреЛ рдЙрддрдирд╛ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрднреА рднреА рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреА рд╣реИ .
...
рддрддреНрд╡ рдЕрдиреБрд╕рд╛рд░
рдпрд╣ рдПрдХ рд╡рд╛рдЬрд┐рдм рдЪрд┐рдВрддрд╛ рд╣реИред (a .f b)
рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ ((a.f) b)
рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╕реБрдЭрд╛рд╡ (a ..f b)
рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
circle 10 |> move 0 0 |> animate "scale" "ease"
рдореИрдВрдиреЗ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рддрд░рд╣ рдлрд╝рдВрдХреНрд╢рди рдЪреЗрдирд┐рдВрдЧ рдХрд╛ рд▓рд╛рдн рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рдорд╛рди рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИред (a f b)
рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
circle 10 |> (move <| 0 0) |> (animate <| "scale" "ease")
... рдЬреЛ рд╣рд╛рд╕реНрдХреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдлреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдмрд╣реБрдд рдкрдардиреАрдп рд╣реИред
рд╢рд╛рдпрдж рдпрд╣ ()
рдХреЗ рдЕрдВрджрд░ рдХреЗрд╡рд▓ рддреАрди рдЪреАрдЬреЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
(a f (b,c))
.(a f (b,c))
рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ .(
рдЕрдВрдд рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рдВрджреБ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛:
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдиреБрдордд рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╕реНрдЯрдо рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬрд╛рд╣рд┐рд░ рд╣реИ рд╣рдо рд╕рднреА рдЕрдкрдиреА рд░рд╛рдп рдХреЗ рд╣рдХрджрд╛рд░ рд╣реИрдВред (рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдердореНрд╕-рдЕрдк рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рддреАрди рдЧреБрдирд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред)
рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкреНрд░рддрд┐рд╡рд╛рдж рд╣реИрдВ:
тЕЛ
рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди ┬з
рдирд╣реАрдВ?", рддреЛ рдореИрдВ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ "рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░реЗрдВ" рдФрд░ "рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЕрдкрдирд╛рдпрд╛ рди рдЬрд╛рдП"ред(a ┬з b)
рдЬреИрд╕рд╛ рдХреБрдЫ рдкреНрд░рдореБрдЦ рд░реВрдк рд╕реЗ рдкрдардиреАрдп рд╣реИ, рдФрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдПрдХ рдпрд╛ рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣рд▓реНрдХрд╛ рд╣реИред(a f b)
рдЗрддрдирд╛ рд╕рд╛рдл рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдкрдЫрддрд╛рд╡рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛редрдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ (a f b)
. рдХреА рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБ
рдпрд╣рд╛рдВ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рд╣реИ:
select((((:emp_id, :last_name) from employee_tbl) where (:city, == ,'indianapolis')) orderby :emp_id));
рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдлрд┐рдХреНрд╕ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдЙрдкрдпреЛрдЧ рд╣реИред
select
рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рддреЛ рдкрд╣рдЪрд╛рди рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдирд┐рд░реНрдорд┐рдд рдХреНрд╡реЗрд░реА рднреЗрдЬрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рд╣реИ?
рдореИрдВ рдмрд╕ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред
.(a f b)
рд╣рд╛рдБ, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдкрдардиреАрдп рдирд╣реАрдВ рд╣реИред
рдХреНрдпрд╛ (a @. f b)
рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ @.
рдореИрдХреНрд░реЛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рди-рд▓рд╛рдЗрдирд░ рд╣реЛрдЧрд╛ред
[[[рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ, рдЕрдЧрд░ рд╣рдордиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИ, рддреЛ @ рдЧреНрд▓реЗрди-рдУ рдЙрдиреНрд╣реЗрдВ рд╡рд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╣ рдЪрд╛рд╣рддрд╛ рд╣реИ: circle(10) @> move 0 0 @> animate "scale" "ease"
=> @> (@> circle(10) move 0 0) animate "scale" "ease"
=macro> animate(move(circle(10),0,0),"scale","ease")
ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╛рдзрд╛рди (a f b)
рд╕реЗ рдЕрдзрд┐рдХ рдмрджрд╕реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореЗрд░реА рдирдЬрд░ рдореЗрдВ рдЗрд╕ рд╕рдордЧреНрд░ рдмрдЧ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ред]]]
...
select((((:emp_id, :last_name) from employee_tbl) where (:city, = ,'indianapolis')) orderby :emp_id);
рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "рдХрд╣рд╛рдВ" рдХреЗ рд▓рд┐рдП рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рд╕рд╢рд░реНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдЙрджреНрдзреГрдд рди рдХрд░рдирд╛ рдкрдбрд╝реЗред рдЗрд╕рд▓рд┐рдП:
select((((:emp_id, :last_name) from employee_tbl) <strong i="22">@where</strong> city == 'indianapolis') orderby :emp_id);
рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╣рд▓реНрдХреЗ рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл рдореБрдЭреЗ рдкрд╛рд░реНрд╕рд░ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдХреЛрдИ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред
select((((:emp_id, :last_name) from employee_tbl) <strong i="6">@where</strong> city == 'indianapolis') orderby :emp_id);
рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╣рд▓реНрдХреЗ рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл рдореБрдЭреЗ рдкрд╛рд░реНрд╕рд░ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕ рддрд░рд╣ рдХреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдХреЛрдИ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред
рджреВрд╕рд░реЗ рд╡рд┐рдЪрд╛рд░ рдкрд░, рдЙрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдкреВрд░реНрд╡рддрд╛ рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВ рд╣реИред рддреЛ, рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдпрд╣ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
select((:emp_id, :last_name) <strong i="11">@from</strong> employee_tbl <strong i="12">@where</strong> city == 'NYC' <strong i="13">@orderby</strong> :emp_id)
рдпрд╛ рдФрд░ рднреА:
<strong i="17">@select</strong> (:emp_id, :last_name) <strong i="18">@from</strong> employee_tbl <strong i="19">@where</strong> city == 'NYC' <strong i="20">@orderby</strong> :emp_id
рдЗрд╕рд▓рд┐рдП рдЬрдмрдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА рдкрд╕рдВрдж рд╣реИ (a f b)
, рдореБрдЭреЗ рд▓рдЧрдиреЗ рд▓рдЧрд╛ рд╣реИ рдХрд┐ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬрд╡рд╛рдм рд╣реИред
рдпрд╣рд╛рдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВ:
рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧ:
a <strong i="28">@m</strong> b
=> <strong i="30">@m</strong> a b
a <strong i="33">@m</strong> b c
=> <strong i="35">@m</strong> a b c
a <strong i="38">@m</strong> b <strong i="39">@m2</strong> c
=> <strong i="41">@m2</strong> (<strong i="42">@m</strong> a b) c
<strong i="45">@defineinfix</strong> f; a <strong i="46">@f</strong> b
=> macro f(a,b...) :(f($a,$b...)) end; <strong i="48">@f</strong> a b
=> f(a,b)
рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ: (рдЕрдЪреНрдЫрд╛ рдХреЛрдб рд╣реЛрдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд╛рд░реНрд╕рд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛)
t1=a <strong i="54">@m</strong> t2=b t3=c
=> <strong i="56">@m</strong> t1=a t2=b t3=c
(рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдЪреНрдЫреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реИрд▓реА рдирд╣реАрдВ рд╣реИ)t1 + a <strong i="59">@m</strong> t2 + b
=> <strong i="61">@m</strong> t1+a t2+b
(рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдЪреНрдЫреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реИрд▓реА рдирд╣реАрдВ рд╣реИ)a b <strong i="64">@m</strong> c
=> рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ (??)a <strong i="67">@m</strong> b [c,d]
=> рдХреГрдкрдпрд╛ рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди <strong i="70">@m</strong> a b[c,d]
(ETA: рдирд╣реАрдВ, рдкреИрдЪ рдХреЗ рд╕рд╛рде рдпрд╣ <strong i="72">@m</strong> a b ([c,d])
рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ рдЬреЛ рд╢рд╛рдпрдж рдмреЗрд╣рддрд░ рд╣реИред)a <strong i="75">@m</strong> b ([c,d])
=> <strong i="77">@m</strong> a b ([c,d])
[a <strong i="80">@m</strong> b]
=> рдЦрд░рд╛рдм рд╢реИрд▓реА, рдХреГрдкрдпрд╛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди [a (<strong i="83">@m</strong> b)]
(??)a @> f b
=> @> a f b
=> f(a,b)
<strong i="90">@outermacro</strong> a b <strong i="91">@m</strong> c d
=> <strong i="93">@outermacro</strong> a (<strong i="94">@m</strong> b c d)
рд▓рд╛рдн:
|>
рдСрдкрд░реЗрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ-рд▓рд╛рдЗрдирд░ рдореИрдХреНрд░реЛ рд╣реИред рдЗрд╕реА рддрд░рд╣ <|
рдФрд░ @Glen-O рдХреЗ рдмрд╛рдХреА рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдПред(a f b)
. рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реНрдкрд╖реНрдЯ, рджреБрд░реНрдШрдЯрдирд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рдмрд╣реБрдд рдХрдо рдЬреЛрдЦрд┐рдо@defineinfix
рдореИрдХреНрд░реЛ рдореИрдХреНрд░реЛ рдХреЗ рдмрдЬрд╛рдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╢реЙрд░реНрдЯрд╣реИрдВрдб рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реИред(рдорд╛рдореВрд▓реА) рдиреБрдХрд╕рд╛рди:
a @> f b
рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ a <strong i="112">@f</strong> b
(a f b)
рдЬрд┐рддрдирд╛ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдмрд╣реБрдд рднрдпрд╛рдирдХ рднреА рдирд╣реАрдВ рд╣реИрдВред)рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдХрд┐рддрдирд╛ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдореВрд▓ рдЪрд┐рдВрддрд╛ рдХреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ: рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрджреНрджреЗ рдЕрдХреНрд╕рд░ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдорд╛рддреНрд░рд╛ рдЖрдорддреМрд░ рдкрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдореВрд▓реНрдп рдХреЗ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрддреА рд╣реИред рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдмрд╣рд╕ рд╣реЛ рд░рд╣реА рд╣реИред рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ, рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрддреНрд░ рд╕реНрд╡рд╛рдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢реБрджреНрдз рддрд░реНрдХреЛрдВ рдХреЗ рдХрд░реАрдм рд╣реЛрддреЗ рд╣реИрдВред
рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рд╡рд╣ рдорд╛рддреНрд░рд╛ рдЖрдо рддреМрд░ рдкрд░ рдЕрдиреБрдкрд╛рдд рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрддреА рд╣реИ
рдореБрдЭреЗ рдорд╛рдл рдХрд░ рджреЛред рдореИрдВ рд╢рд╛рдпрдж рдЖрдЧреЗ-рдкреАрдЫреЗ рд╣реЛрдиреЗ рдХрд╛ рджреЛрд╖реА рд╣реВрдВред
рджреВрд╕рд░реА рдУрд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдзрд╛рдЧреЗ рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ "рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рдкреНрд░рдЧрддрд┐ рдХреА рд╣реИред рдирд╡реАрдирддрдо рд╕реБрдЭрд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА (a f b)
рдпрд╛ [ a @> f b
, рдЬрд┐рд╕рдореЗрдВ a <strong i="10">@f</strong> b
рдПрдХ рд╢реЙрд░реНрдЯрдХрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИ] рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ рдкрд╣рд▓реЗ рдХреЗ рд╕реБрдЭрд╛рд╡реЛрдВ рдЬреИрд╕реЗ a %f% b
рдпрд╛ a |> f <| b
ред
рдлрд┐рд░ рднреА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рд╢рд╛рдпрдж рдХреЛрдИ рдФрд░ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИ, рдФрд░ рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдм рд╕реЗ рдердореНрд╕-рдЕрдк рдпрд╛ рдердореНрд╕-рдбрд╛рдЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рддрдХ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдирдпрд╛ рди рд╣реЛ (рдХрд┐ рд╣реИ, рди рдХреЗрд╡рд▓ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрд░реНрдереЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди)ред рдореИрдВрдиреЗ "рд╣реБрд░реНрд░реЗ" рдЗрдореЛрдЯрд┐рдХреЙрдиреНрд╕ (рд╡рд┐рд╕реНрдлреЛрдЯрдХ рд╢рдВрдХреБ) рдХреЛ "рдорддрджрд╛рди рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ" рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрдВрдлрд┐рдХреНрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдордирдорд╛рдиреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдЧ рдХреЛ рдбрд╛рдЙрдирд╡реЛрдЯ рдХрд░реЗрдВред
...
рдИрдЯреАрдП: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд░реНрдЪрд╛ рдЕрдм decision
рдЯреИрдЧ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛ рдЧрдИ рд╣реИред
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, (рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреЛрдИ рдФрд░ рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛)ред
рдпрджрд┐ рдЖрдк SQL- рдЬреИрд╕реЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдиреМрдХрд░реА рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЙрдкрдХрд░рдг рдЧреИрд░-рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
рд╕рднреА рдореИрдХреНрд░реЛ рдХреА рддрд░рд╣, рдХреЙрд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рджрд╛рдпрд░реЗ рдореЗрдВ рд╕рднреА рдЪрд░реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ,
рдФрд░ рд╡реЗ рдЖрдкрдХреЛ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдбреАрдПрд╕рдПрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
select((((:emp_id, :last_name) from employee_tbl) where (:city, == ,"indianapolis")) orderby :emp_id));
рдмреЗрд╣рддрд░ рд▓рд┐рдЦрд╛ рд╣реИ
sql"SELECT emp_id, last_name FROM employee_tbl WHERE city == 'indianapolis' ORDER BY emp_id"
рдЧреИрд░-рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдХреНрд╖рд░ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХрд╛ рдПрдХ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдмрд┐рдЯ рд╣реИрдВред
рдореБрдЭреЗ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреАрдПрд╕рдПрд▓ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рд▓реЗрдХрд┐рди рд╡реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХрд┐рд╕реА рднреА рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рдл рд╣реИ рдЬрд┐рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдорд╛рдЗрдХреНрд░реЛрдкрд╛рд░реНрд╕рд░/рдЯреЛрдХрдирд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдУрд╡рд░рд╣реЗрдб рд╣реЛрддрд╛ рд╣реИред
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдгрдп рдЯреИрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИред
рдкреАрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХрд╛ рдХреЛрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ, рди рд╣реА рдХреЛрдИ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкред
рдЬрд┐рд╕рд╕реЗ рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреЗрдВред
рдЗрд╕рдХреЗ 8 рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде https://github.com/JuliaLang/julia/issues/5571#issuecomment -205754539 рдХреЗ рд╡рд┐рдкрд░реАрдд
рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдзрд╛рдЧрд╛ рдкрдврд╝рддрд╛ рд╣реВрдВ рддреЛ рдЗрд╕рдХреЗ рдкреНрд░рддрд┐ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрдм рддрдХ рдЬрд╛рди рдкрд╛рдКрдВрдЧрд╛ рдЬрдм рддрдХ рдореИрдВ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ред рдФрд░ рдЕрднреА рдореИрдВ рдпрд╣ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред ( |>
рдФрд░ <|
рдХреА рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ F# рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ)
SQL рдЬреИрд╕рд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕, рдиреМрдХрд░реА рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЙрдкрдХрд░рдг рдЧреИрд░-рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕ рд╣реИ
рдПрд╕рдХреНрдпреВрдПрд▓ рдПрдирдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреАрдПрд╕рдПрд▓ рдХрд╛ рдПрдХ рд╕реНрддрд░ рд╣реИ рдЬреЛ рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдЗрдирд▓рд╛рдЗрди рдореИрдХреНрд░реЛрдЬрд╝ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЦреБрдж рдХреЗ рдорд╛рдЗрдХреНрд░реЛрдкрд╛рд░реНрд╕рд░/рдЯреЛрдХрдирд╛рдЗрдЬрд╝рд░ рд▓рд┐рдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИред
рдЕрднреА рдореИрдВ рдпрд╣ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред (|> рдФрд░ <| рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ F# рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ)
рдЗрдирд▓рд╛рдЗрди рдореИрдХреНрд░реЛ рдкреНрд░рд╕реНрддрд╛рд╡ рд▓реЛрдЧреЛрдВ рдХреЛ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ |>
-рдЬреИрд╕реЗ рдпрд╛ <|
-рдЬреИрд╕реЗ рдореИрдХреНрд░реЛ рд░реЛрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛, рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ F# рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рд╣реИ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред
(рдореИрдВ рдЖрдЧреЗ-рдкреАрдЫреЗ рдмрд╛рдЗрдХрд╢реЗрдбрд┐рдВрдЧ рдХреЗ рддрд░реНрдХреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЖрдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдиреАрдЪреЗ рдХреА рд╡рдЬрд╣ рд╕реЗ рд╡реИрд╕реЗ рднреА рдЬрд╡рд╛рдм рджреЗ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдирд▓рд╛рдЗрди-рдореИрдХреНрд░реЛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрдИ рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд-рдЪрд┐рдХрдиреЗ рдкрддреНрдерд░ рд╕реЗ рдорд╛рд░рддрд╛ рд╣реИред)
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдгрдп рдЯреИрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣реА рд╣реИред
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдкреВрдЫрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд░реНрд╕рд░ рдкреИрдЪ рдмрдирд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рдФрд░ рдХрд┐рд╕реА рдиреЗ рдЙрддреНрддрд░ рдирд╣реАрдВ рджрд┐рдпрд╛ред рдЙрд╕ рдкрд░ рдЕрдм рддрдХ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╢рдмреНрдж рд╣реИ:
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ 1.0 рд╕реЗ рдкрд╣рд▓реЗ "рд╡рд╛рдХреНрдп рд░рдЪрдирд╛рддреНрдордХ рдирд╡рд╛рдЪрд╛рд░" рдХреЗ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╣реЛрдЧрд╛ред
рдЬреЛ рдЕрдм рдПрдХ рдкреИрдЪ рдмрдирд╛рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрд╣рд╕ рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╕ рдмреИрда рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдереЛрдбрд╝рд╛ рд╕рдбрд╝ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдм рдЖрдк рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЗрд╕ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИ (рдЕрднреА рдирд┐рд░реНрдгрдп рди рд▓реЗрдиреЗ рдХреЗ рдирд┐рд░реНрдгрдп рд╕рд╣рд┐рдд?) рдЬрдм рддрдХ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдкреАрдЖрд░ [рдпрд╛] рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди" рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? (рдкреАрдЖрд░ рдХреНрдпрд╛ рд╣реИ?) рдХреНрдпрд╛ рдХреЛрдИ рдореИрдХреНрд░реЛ рдЬреЛ '@'
рдХреЗ рдмрдЬрд╛рдп @
рд╡рд░реНрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рддрд╛рдХрд┐ <strong i="22">@testinline</strong> a '@'f b
=> @f(a, b)
? рдпрд╛ рдореБрдЭреЗ julia-parser.scm рдкрд░ рдкреИрдЪ рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? (рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреИрдЪ рдХреЛ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореЗрд░реА рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рдЬрдВрдЧ рд▓рдЧреА рд╣реИред) рдХреНрдпрд╛ рдореБрдЭреЗ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдмрдирд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ?
рдЕрднреА рдЗрд╕ рдмрдЧ рдореЗрдВ 13 рдкреНрд░рддрд┐рднрд╛рдЧреА рд╣реИрдВред рдХреБрд▓ 5 рд▓реЛрдЧ рдРрд╕реЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдкрд░ рдорддрджрд╛рди рдХрд┐рдпрд╛ рд╣реИ рдФрд░/рдпрд╛ рдмрдЧ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ (рдореБрдЭреЗ) рдиреЗ рдЗрдирд▓рд╛рдЗрди рдореИрдХреНрд░реЛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдЯреЗрдмрд▓ рдкрд░ рдЖрдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рдХрд┐рдпрд╛ рдерд╛ред рдЗрд╕рд╕реЗ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЕрднреА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдЬрдм рдкрд┐рдЫрд▓реЗ рдЧрдВрднреАрд░ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдмрд╛рдж рд╕реЗ рдорддрджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдЖрдо рд╕рд╣рдорддрд┐ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧреА, рдФрд░ рдлрд┐рд░ рдпрд╣ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдФрд░ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реЛрдЧрд╛ (рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛)ред
"рдПрдХ рдкреАрдЖрд░ [рдпрд╛] рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди" рджреНрд╡рд╛рд░рд╛ред
рдореЗрд░рд╛ рдорддрд▓рдм рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рддреЛ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред
рдПрдХ рдкреАрдЖрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреИрдЪ рд╡рд╣ рд╢рдмреНрдж рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдкрдиреЗ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдзрд┐рдХ рд╕рд░рд▓рддрд╛ рд╕реЗ рдпрджреНрдпрдкрд┐ рдпрджрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ
рдпрд╛ рдиреЙрдирд╕реНрдЯрд░реНрдбрд░реНрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓,
рдЬреВрд▓рд┐рдпрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЬреИрд╕реЗ рдпрд╣ рдореЗрд░реА рдХреЙрд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЪреАрдЬ рдХреЗ рдЕрдкрдиреА рд░рд╛рдп рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдЦреЗрд▓ рд╕рдХрддрд╛ рд╣реВрдВред
рд╕рд╛рде рд╣реА рдмрд╛рдЗрдХ рд╢реЗрдбрд┐рдВрдЧ рдХреЛ рдЖрдЧреЗ-рдкреАрдЫреЗ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП +1 рдХрд░реЗрдВред
...рдпрд╛ рд╢рд╛рдпрдж рдореИрдХреНрд░реЛрдЬрд╝ рдФрд░ рдЧреИрд░-рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдПрдХ Infix.jl рдкреИрдХреЗрдЬред
рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд╛рддрдЪреАрдд рдореЗрдВ "рд╡рд░реНрдХрд┐рдВрдЧ рдХреЛрдб рдпрд╛ рдЬреАрдЯреАрдПрдлрдУ" рдмрд┐рдВрджреБ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдП рд╣реИрдВред
рдареАрдХ рд╣реИ, рдпрд╣рд╛рдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рд╣реИ: https://github.com/jamesonquinn/JuliaParser.jl
рдИрдЯреАрдП: рдХреНрдпрд╛ рдореБрдЭреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдирд╡реАрдирддрдо рдорд╛рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд▓рд┐рдВрдХ рдареАрдХ рд╣реИ?
...
(рдЗрд╕рдореЗрдВ рдХреЛрдИ рднреА рд╕реБрд╡рд┐рдзрд╛ рдореИрдХреНрд░реЛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ |>
, <|
, ~
, рдФрд░ @defineinfix
рдХреЗ рд╕рдордХрдХреНрд╖ред рдКрдкрд░ рджрд┐рдП рдЧрдП рдореЗрд░реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ ~
рдпрд╛ |>
рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЕрдм рдмреЗрдХрд╛рд░ рд╡рд┐рд╢реЗрд╖ рдХреЗрд╕ рд▓реЙрдЬрд┐рдХ _deprecate_ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рдкрд╛рд░реНрд╕рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред рдореИрдВрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рд╕рднреА рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВред
...
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ~
рдХреЗ рд╕рд╛рде рдореМрдЬреВрджрд╛ рдмрджрд╕реВрд░рдд рд╣реИрдХ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИред рдЗрд╕ рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдХрд╣реЗрдВрдЧреЗ @~
рдЬрдм рдЖрдкрдХреЛ рдореИрдХреНрд░реЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА; рдмрд╣реБрдд рд╕рд╛рдл, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗред рдпрд╛ рдХреНрдпрд╛ рдХреЛрдИ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ ~
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ рдФрд░ рдХреЛрдИ рднреА рдЗрд╕реЗ рдлрд┐рд░ рдХрднреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛?
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреИрдЪ (рдпрд╣ рдЕрднреА рддрдХ рдПрдХ рдкреАрдЖрд░ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреЗрд╢реА рдмреВрдЯрд╕реНрдЯреНрд░реИрдкреНрдб рдкрд╛рд░реНрд╕рд░ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдХреЛ рдкреАрдЖрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╣рд▓реЗ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП) рдпрд╣рд╛рдВ рдЬрд╛рд░реА рдирд╛рдо рд╕реЗ рдЕрдзрд┐рдХ рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд╛рдо "рдХрд╕реНрдЯрдо рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реНрд╕" рд╣реИ; рдкреИрдЪ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░ рдХреЗрд╡рд▓ рдЙрд╕реА рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрддреЗ рд╣реИрдВред
рдкреИрдЪ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЦрдбрд╝рд╛ рд╣реИ, рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдпреЛрдЬрдирд╛ рдмрди рдЬрд╛рддреА рд╣реИ рддреЛ рдЕрдЧрд▓рд╛ рдХрджрдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореМрдЬреВрдж ~
рдФрд░ |>
рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЕрдВрддрддрдГ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛ рдкрд░рд┐рд╡рд░реНрддрди рддреЛрдбрд╝рдирд╛ред
...
рдХреБрдЫ рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗ рдЧрдПред
~
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд╛ рдПрдХ рдореМрдЬреВрджрд╛ рдорд╛рдорд▓рд╛ рдПрдХ рдЧрд▓рддреА рдереА (рдЖрд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ)ред рд╣рдо рдкрджрд╛рд╡рдирдд рдХрд░рдиреЗ рдФрд░ рдЕрдВрддрддрдГ рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рдЕрднреА рддрдХ рдЗрд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рдЬреВрд▓рд┐рдпрд╛рд╕реНрдЯреИрдЯреНрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рдлреЙрд░реНрдореВрд▓рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде) рдЕрднреА рддрдХредрдореИрдХреНрд░реЛрдЬрд╝ рдЕрдм рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдЗрдирдкреБрдЯ рддрд░реНрдХ рд╣рдореЗрд╢рд╛ Expr
, Symbol
рдпрд╛ рд╢рд╛рдмреНрджрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╡реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ (рдЗрдиреНрдлрд┐рдХреНрд╕ рдпрд╛ рдЕрдиреНрдпрдерд╛) рд╣реИрдВред рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕-рдПрдиреЛрдЯреЗрдЯ рдореИрдХреНрд░реЛ рдбреАрдПрд╕рдПрд▓ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕ рджреНрд╡рд╛рд░рд╛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
(рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛, рдЕрднреА рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред)
#11608 рдореЗрдВ, рдореБрдЭреЗ рдХрдИ рдирдХрд╛рд░рд╛рддреНрдордХ рддрд░реНрдХ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ:
===
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдХреНрдпрд╛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реЛрдЧрд╛?
...
y = 0.0 @in@ x == 1.0 ? 1 @in@ 2 : 3 @in@ 4
рдпрд╣ рдзрд╛рдЧреЗ рдореЗрдВ рдирд┐рдкрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╣рдореЗрд╢рд╛ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ ...
рддрдерд╛
рд╡рд╣реА рдорд┐рд╕рд╛рд▓ ... рдореИрдХреНрд░реЛ рдХреЗ рдмрд┐рдирд╛ рд▓рд╛рдЧреВ:
0.0 in 1 == 1.0 ? 2 in 2 : 3 in 4
===
рдЬреВрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬрд┐рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛, рдмрдирд╛рдП рд░рдЦрдирд╛, рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛, рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реАрдЦрдирд╛ рдЖрджрд┐ рд╣реИред
рдЬрд┐рд╕рдХрд╛ (рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ) рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдФрд░ рджреВрд╕рд░рд╛) рдпрд╣рд╛рдВ рджреНрд╡рд╛рд░рд╛:
"рдкрд╛рд░реНрд╕рд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░рджрд░реНрдж" рд╕рдмрд╕реЗ рдХрдо рд╕рдВрднрд╡ рдЪрд┐рдВрддрд╛ рд╣реИред
===
рдХреНрдпрд╛ рдПрдХ рд╣реА рдореИрдХреНрд░реЛ-рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП 2 рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдЧрд░ рдореИрдХреНрд░реЛ рд╕рд┐рд░реНрдл рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕рднреА рдкреНрд░реЗрд╖рдг рд╢рдХреНрддрд┐ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдПрдХ рд╕рдЪреНрдЪрд╛ рдореИрдХреНрд░реЛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ ~
рдХреЗ рд╕рд╛рде рд╣реИ, рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рд╣рд╛рдВ, рдЖрдк рд╣реИрдХрд┐рд╢ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЗрд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛, рдФрд░ рдЗрд╕реЗ рдореИрдХреНрд░реЛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝рдирд╛ ... рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреА рдХреБрд░реВрдкрддрд╛ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдлрд┐рд░ рднреА, рдпрд╣ рдХрд┐рд╕реА рднреА рдореИрдХреНрд░реЛ рдХреЗ рд▓рд┐рдП рдЙрддрдирд╛ рд╣реА рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИред рдпрджрд┐ рджреЛ рдкреИрдХреЗрдЬ рджреЛрдиреЛрдВ рдореИрдХреНрд░реЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ "рдЙрдкрдпреЛрдЧ" рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╕ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ? рдЦреИрд░, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ:
|>
рдФрд░ <|
рдЬреИрд╕реЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ @ рдЧреНрд▓реЗрди-рдУ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрдХрд░рд╛рд╡ рдХреА рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдореИрдХреНрд░реЛ рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред~
рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рджрд┐рдЦрддрд╛ рд╣реИ; рдЖрд░ рдореЗрдВ, ~
рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рднреА, рдпрд╣ рдкреНрд░рдмрдВрдзрдиреАрдп рд╣реИ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ:macro ~(a,b) :(~(:$a, quote($b))) end
рдлрд┐рд░, рдлрд╝рдВрдХреНрд╢рди ~
LHS рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░реЗрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди RHS рд╣рдореЗрд╢рд╛ рдПрдХ Expr рд╣реЛрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ рдкреНрд░рд┐рдВрд╕рд┐рдкрд▓ рдХреЛ рдЖрд░ (рд░рд┐рдЧреНрд░реЗрд╢рди рдФрд░ рдЧреНрд░рд╛рдлрд┐рдВрдЧ) рдореЗрдВ рд╕рд╣-рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреА, рдпрд╛рдиреА рд╡рд┐рднрд┐рдиреНрди рдкреИрдХреЗрдЬреЛрдВ рд╕реЗ рдЖрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
(рдиреЛрдЯ: рдЙрдкрд░реЛрдХреНрдд рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ a ~ b + c
b
рдФрд░ c
рдХреЗ рдмрдВрдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ R рдХреЗ рдЖрд▓рд╕реА рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЯреА; b
рдФрд░ c
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдлреНрд░реЗрдо рдореЗрдВ рдХреЙрд▓рдо рдХреЗ рдирд╛рдо рд╣реИрдВ, рд╕реНрдерд╛рдиреАрдп рджрд╛рдпрд░реЗ рдореЗрдВ рдЪрд░ рдХреЗ рдирд╛рдо рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рд╣рд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред)
===
рдпрд╣рд╛рдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЬреЛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ рд╣реИред
===
рдореИрдХреНрд░реЛрдЬрд╝ рдЕрдм рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдЗрдирдкреБрдЯ рддрд░реНрдХ рд╣рдореЗрд╢рд╛ рдПрдХреНрд╕рдкреНрд░, рд╕рд┐рдВрдмрд▓ рдпрд╛ рд╢рд╛рдмреНрджрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╡реЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ (рдЗрдиреНрдлрд┐рдХреНрд╕ рдпрд╛ рдЕрдиреНрдпрдерд╛) рд╣реИрдВред
рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рдмрд┐рдВрджреБ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдПрдХ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рднреА рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░реЗрд╖рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реИред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдХреБрдЫ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ/рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ |>
рдЕрдм рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ) рдЬрд┐рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдпрд╛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рднрд▓реЗ рд╣реА рдпрд╣ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реЛ, рдпрд╣ рддрдереНрдп рдХрд┐ рдпрд╣ рдПрдХ рдореИрдХреНрд░реЛ рд╣реИ, рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдкрдиреЗ рдХреБрдЫ рддрд░реНрдХреЛрдВ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдирд╛рдо рдФрд░ рдПрдХ рдЪрд░ рдХреЗ рдмрдВрдзрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
===
рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕-рдПрдиреЛрдЯреЗрдЯ рдореИрдХреНрд░реЛ рдбреАрдПрд╕рдПрд▓ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕ рджреНрд╡рд╛рд░рд╛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рд╕рдВрджрд░реНрднрд┐рдд рд╕реВрддреНрд░ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
[рдЗрдиреНрдлрд┐рдХреНрд╕] рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ (рдЕрдВрдЧреНрд░реЗрдЬреА рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╢реНрдЪрд┐рдореА рд╡рдХреНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП), рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рднрд╛рд╖рд╛ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреА рд╣реИред (рдпрд╣реА рдмрд╛рдд рдЖрдо рддреМрд░ рдкрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрддреА рд╣реИред)
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп (рдФрд░ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп) рд╣реИ:
select((:emp_id, :last_name) <strong i="8">@from</strong> employee_tbl <strong i="9">@where</strong> city == 'NYC' <strong i="10">@orderby</strong> :emp_id)
рдпрд╛
send(orderby((<strong i="14">@where</strong> selectfrom((:emp_id, :last_name), employee_tbl) city == 'NYC'), :emp_id))
?
===
рдЖрдЦрд┐рд░рдХрд╛рд░:
11608 рдХреЛ рд╕реНрдкрд╖реНрдЯ рд╕рд╣рдорддрд┐ рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдирд┐рд░реНрдгрд╛рдпрдХ рд╡реЛрдЯ рдбрд╛рд▓рдиреЗ рд╡рд╛рд▓реЗ "рдХрд╛рдо рдХреМрди рдХрд░реЗрдЧрд╛" рдХреЗ рд╕рд╛рде, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рджрд┐рдЦрддрд╛ рд╣реИред рдЬреЛ рдЕрдм рдХрдо рд╕реЗ рдХрдо рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИ; рдореИрдВрдиреЗ рдЬреВрд▓рд┐рдпрд╛рдкрд╛рд░реНрд╕рд░ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдЧрд░ рд▓реЛрдЧ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕реЗ рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВред
рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдпрд╣ рдореЗрд░реА рдЖрдЦрд┐рд░реА рдкреЛрд╕реНрдЯ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдореЗрд░реЗ рд╣реИрдХ рдХрд┐рдП рдЧрдП рдЬреВрд▓рд┐рдпрд╛рдкрд╛рд░реНрд╕рд░ рдкрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рди рд╣реЛред рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рдХреЛ рдереЛрдкрдиреЗ рдХрд╛ рдореЗрд░рд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИ; рдХреЗрд╡рд▓ рдЕрдкрдирд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдореИрдВ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ ( a <strong i="6">@m</strong> b
=> <strong i="8">@m</strong> a b
) рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдмрд╣рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╡рд┐рдкрдХреНрд╖ рдХреЗ рддрд░реНрдХреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реНрдХ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдХреИрд╕реЗ рджреВрдВрдЧрд╛:
рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдПрдБ -100 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХреНрдпрд╛ рдкреЗрд╢рдХрд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрднрд╡рддрдГ рдЙрд╕ рдкрд░ рдХрд╛рдмреВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдЙрдирдХреЗ рд╕реНрд╡рднрд╛рд╡ рд╕реЗ, рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрд╕рд░реНрдЧ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ: рдЬреВрд▓рд┐рдпрд╛ рдПрд╕рдЯреАрдИрдПрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рднрд╛рд╖рд╛ рд╣реИред рдЧрдгрд┐рддрдЬреНрдЮ, рдЗрдВрдЬреАрдирд┐рдпрд░, рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрд╡рд┐рдж, рднреМрддрд┐рдХ рд╡рд┐рдЬреНрдЮрд╛рдиреА, рдЬреАрд╡рд╡рд┐рдЬреНрдЮрд╛рдиреА, рдорд╢реАрди рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ, рд░рд╕рд╛рдпрдирдЬреНрдЮ, рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░реА ... рдФрд░ рдПрдХ рдмрд╛рдд рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЕрдЪреНрдЫреЗ рдЕрдВрдХрди рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЖрдБрдХрдбрд╝реЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдБ: рд╕реНрд╡рддрдВрддреНрд░ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЪрд░ рдЬреЛрдбрд╝рдирд╛ рдкреАрдбреАрдПрдл рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╕реАрдбреАрдПрдл рдХреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдбреЗрд░рд┐рд╡реЗрдЯрд┐рд╡ рдХреЗ рд▓рд┐рдП рднреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдкреВрд░реНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдкрд░рд┐рдорд╛рдг рдХрд╛ рдПрдХ рдХреНрд░рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмрд╛рдж рд╡рд╛рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред .
рдЗрдВрдлрд┐рдХреНрд╕ рдмрдирд╛рдо рдкреНрд░реАрдлрд┐рдХреНрд╕ рдмрдирд╛рдо рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕, рдХреБрдЫ рд╣рдж рддрдХ, рд╕реНрд╡рд╛рдж рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрдВрдлрд┐рдХреНрд╕ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдиреЗ рдХреЗ рд╡рд╕реНрддреБрдирд┐рд╖реНрда рдХрд╛рд░рдг рднреА рд╣реИрдВред рдЬрдмрдХрд┐ рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕ рдмреИрдХ-рдЯреВ-рдмреИрдХ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдЕрдкрдЪрдиреАрдп рдЕрд╡рдХреНрд╖реЗрдк рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдлреЛрд░реНрде рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЬрд░реНрдорди рд░рд╛рдЬрдиреЗрддрд╛рдУрдВ рдХреА рддрд░рд╣ рдзреНрд╡рдирд┐ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдЬреЛ рд▓рд┐рд╕реНрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЪреЛрдорд╕реНрдХрд┐рдпрди рдХреИрд░рд┐рдХреЗрдЪрд░ рдХреА рддрд░рд╣ рдзреНрд╡рдирд┐ рджреЗрддреЗ рд╣реИрдВ, рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдХреНрд╕рд░ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░рдЦрддрд╛ рд╣реИ рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕реНрдерд╛рди, рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдЕрдкрдиреЗ рд╕рднреА рдСрдкрд░реЗрдВрдб рдХреЗ рдХрд░реАрдмред рдПрдХ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдлреЛрд░реНрде рдореЗрдВ рдЧрдгрд┐рдд рдХреЗ рдкреЗрдкрд░ рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЬрд░реНрдорди рдЧрдгрд┐рддрдЬреНрдЮ рднреА рд╕рдореАрдХрд░рдг рд▓рд┐рдЦрддреЗ рд╕рдордп рдЗрдиреНрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рдВ, рдЕрд╕реНрдкрд╖реНрдЯ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рдЙрдкрд╕рд░реНрдЧ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рджреБрд░реБрдкрдпреЛрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЙрддрдиреА рд╣реА рд╣реИред рдпрджрд┐ рджреБрд░реБрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
(a+b <strong i="18">@choose</strong> b)
рдзрдбрд╝рдХрддрд╛ рд╣реИ binomial(a+b,b)
;score ~ age + treatment
рдзрдбрд╝рдХрддрд╛ рд╣реИ linearDependency(:score, :(age + treatment))
;domSelect("#logo") @| css "color" "red" @| fadeIn "slow" <strong i="25">@thenApply</strong> addClass "dummy"
рдкрд╡рд┐рддреНрд░ рдирд░рдХ рдХреЛ addOneTimeEventListener(fadeIn(css(domSelect("#logo"),"color","red"),"slow"),"done",(obj,evt)->addClass(obj,"dummy"))
рд╕реЗ рд╣рд░рд╛ рджреЗрддрд╛ рд╣реИредрдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпреЗ рд╕рд┐рд░реНрдл рдЦрд┐рд▓реМрдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рдорд╛рдиреНрдп рд╣реИред
рдХреНрдпрд╛ рдЙрдкрд░реЛрдХреНрдд рдЧреИрд░-рдорд╛рдирдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдХреНрд╖рд░ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдЦреИрд░, рджреВрд╕рд░рд╛ рдФрд░ рддреАрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг рдПрдирдПрд╕рдПрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдирдПрд╕рдПрд▓ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рджреЗрддреЗ рд╣реИрдВ: рдЬрдм рддрдХ рдЖрдк рд╡рд┐рд╢реЗрд╖ рд╡реНрдпрд╛рдХрд░рдг рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддрдм рддрдХ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдирдПрд╕рдПрд▓ рдХреЗ рдЯреЛрдХрди рдХреНрдпрд╛ рд╣реИрдВ, рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдХреНрд░рдо рдХреЛ рддреЛ рдЫреЛрдбрд╝ рджреЗрдВред рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рдирд╣реАрдВ рдХрд┐ "рдЕрдЪреНрдЫрд╛" рдХреЛрдб рдкрдврд╝рдиреЗ рдкрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рди рд╣реЛ рдХрд┐ рдЯреЛрдХрди рдХреНрдпрд╛ рд╣реИрдВ рдФрд░ рдирд┐рд╣рд┐рдд рдХреЛрд╖реНрдардХ рдХрд╣рд╛рдБ рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрдЬреНрдЮрд╛рдд рдЕрдЬреНрдЮрд╛рдд рд╕реЗ рдЬреНрдЮрд╛рдд рдЕрдЬреНрдЮрд╛рдд рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред
рдЕрдм рдЬрдмрдХрд┐ <|
рд░рд╛рдЗрдЯ-рдПрд╕реЛрд╕рд┐рдПрдЯрд┐рд╡ (#24153) рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╢реБрд░реБрдЖрддреА a |>op<| b
рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдореИрдВрдиреЗ рд╕реНрдЯреАрд╡рди рджреНрд╡рд╛рд░рд╛ https://github.com/JuliaLang/julia/pull/24404#issuecomment -341570934 рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдХреЗрдЬ рдмрдирд╛рдпрд╛ рд╣реИ:
рдореИрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдпрд╣ рдХрд┐рддрдиреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ <~
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдкрд╛рд░реНрд╕рд░ рд╕рд╣рдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - рднрд▓реЗ рд╣реА рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рд░рдЦрддрд╛ рд╣реВрдВ, рдпрд╣ a <~ b
рдХрд╛ рдЕрд░реНрде a < (~b)
рдЪрд╛рд╣рддрд╛ рд╣реИред
<-
рдореЗрдВ рднреА рдРрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореБрджреНрджреЗ рд╕реЗ рдЖрдЪреНрдЫрд╛рджрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рд╣рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ a < ~b
рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ; рд╣рдордиреЗ рдкрд╣рд▓реЗ рднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗ рд╣реИрдВред рддрдм рд╣рдо рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ <-
рдФрд░ <~
рдЬреЛрдбрд╝ рд╕рдХрддреЗ рдереЗред
рдзрдиреНрдпрд╡рд╛рдж @JeffBezanson , рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛! рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдо рд╣реЛрдЧрд╛? рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ, рд╕реНрдкрд╖реНрдЯ рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рдХреЛрдб рджреЗрдиреЗ рдФрд░ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╡рд░рдг рд╣реИрдВред рд╡реИрд╕реЗ рднреА, рдореИрдВ рдорджрдж рдФрд░ рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдирд╡рд╡рд░реНрд╖ рдХреА рд╢реБрднрдХрд╛рдордирд╛рдПрдВ!
рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ a <~ b
a < ~b
рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдЧрд╛ рдореИрдВ a =+ 1
рдХреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЪреЗрддрд╛рд╡рдиреА)
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдкреБрд░рд╛рдиреА рдЪрд░реНрдЪрд╛ рд╣реИ, рдФрд░ рдкреВрдЫрд╛ рдЧрдпрд╛ рдкреНрд░рд╢реНрди рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдкреВрдЫрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдЙрддреНрддрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ:
рдЕрдм рдЬрдмрдХрд┐
<|
рд░рд╛рдЗрдЯ-рдПрд╕реЛрд╕рд┐рдПрдЯрд┐рд╡ (#24153) рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╢реБрд░реБрдЖрддреАa |>op<| b
рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдирд╣реАрдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, |>
рдХреЛ рдЕрднреА рднреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдорд┐рд▓рддреА рд╣реИред рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЕрджреНрдпрддрди рдРрд╕рд╛ рдмрдирд╛рддрд╛ рд╣реИ рдХрд┐, рдпрджрд┐ рдЖрдк <|(a,b)=a(b)
рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк $# a(b(c))
рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ a<|b<|c
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред
2 рд╕рд╛рд▓ рдХреЗ рджреМрд░рд╛рди рдЬрдореЗ рд╣реБрдП, 2 рдФрд░ 5 рджрд┐рди рдкрд╣рд▓реЗ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдФрд░ рдПрдХ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛!
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдмрд╛рдЗрдирд░реА рдСрдкрд░реЗрдЯрд░ рджреЗрдЦреЗрдВ f45b6be
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕реНрдЯреАрдлрди рдореБрдЭрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╕реАрдирд┐рдпрд░ рдирд╣реАрдВ рд╣реИрдВред