Julia: рдХрд╕реНрдЯрдо рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░

рдХреЛ рдирд┐рд░реНрдорд┐рдд 17 рдЬреВрди 2016  ┬╖  65рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: JuliaLang/julia

рдХрд╕реНрдЯрдо рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ 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 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕реНрдЯреАрдлрди рдореБрдЭрд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╕реАрдирд┐рдпрд░ рдирд╣реАрдВ рд╣реИрдВред

рд╕рднреА 65 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬреВрд▓рд┐рдпрд╛-рджреЗрд╡ рд╕реВрддреНрд░ рдХреЛ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд░ рд╕реНрдЯреАрдлрди рдХреА рдореБрдЦреНрдп рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛:

рдмрд╕ рдпрд╣рд╛рдВ рдЕрдкреЗрдХреНрд╖рд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЬреВрд▓рд┐рдпрд╛ 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) рдХрд╛ рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рдмрд╛рдж рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рд╣реИ рддреЛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд▓рдЯрдХрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред

[рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  • f рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА "рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐" рд╣реИ, рд╢рд╛рдпрдж рдЬрдЯрд┐рд▓, рдмреА, рд╕реА, рдФрд░ рдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╢рд╛рдпрдж рд╕рд░рд▓ред
  • f рдПрдХ "рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд" рд╡рд┐рдзрд┐ рд╣реИ рдЬреИрд╕реЗ 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)

рд▓рд╛рдн:

  • рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЗрдВрдлрд┐рдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рдореБрдлреНрдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдореИрдХреНрд░реЛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдПрдХ рдмрд╛рд░ рдХреЗ рдУрд╡рд░рд╣реЗрдб рдХреЗ рд╕рд╛рдеред рдпрд╣ рдкрд╛рд░реНрд╕рд░ рдЬрд╛рджреВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдлреА рдХрдо-рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рдореВрд▓реНрдпрд╛рдВрдХрди рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдХрд╣реАрдВ рдмреЗрд╣рддрд░ рд╣реИ)
  • рд╢рдХреНрддрд┐рд╢рд╛рд▓реА DSL рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ SQL рдЬреИрд╕реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ
  • рдПрдХ рдЕрд▓рдЧ |> рдСрдкрд░реЗрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ-рд▓рд╛рдЗрдирд░ рдореИрдХреНрд░реЛ рд╣реИред рдЗрд╕реА рддрд░рд╣ <| рдФрд░ @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_ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рдкрд╛рд░реНрд╕рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред рдореИрдВрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рд╕рднреА рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВред

...

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ~ рдХреЗ рд╕рд╛рде рдореМрдЬреВрджрд╛ рдмрджрд╕реВрд░рдд рд╣реИрдХ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИред рдЗрд╕ рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдХрд╣реЗрдВрдЧреЗ @~ рдЬрдм рдЖрдкрдХреЛ рдореИрдХреНрд░реЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА; рдмрд╣реБрдд рд╕рд╛рдл, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗред рдпрд╛ рдХреНрдпрд╛ рдХреЛрдИ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ ~ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ рдФрд░ рдХреЛрдИ рднреА рдЗрд╕реЗ рдлрд┐рд░ рдХрднреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛?

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреИрдЪ (рдпрд╣ рдЕрднреА рддрдХ рдПрдХ рдкреАрдЖрд░ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджреЗрд╢реА рдмреВрдЯрд╕реНрдЯреНрд░реИрдкреНрдб рдкрд╛рд░реНрд╕рд░ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдХреЛ рдкреАрдЖрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╣рд▓реЗ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП) рдпрд╣рд╛рдВ рдЬрд╛рд░реА рдирд╛рдо рд╕реЗ рдЕрдзрд┐рдХ рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд╛рдо "рдХрд╕реНрдЯрдо рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░реНрд╕" рд╣реИ; рдкреИрдЪ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдлрд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд░ рдХреЗрд╡рд▓ рдЙрд╕реА рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрддреЗ рд╣реИрдВред

рдкреИрдЪ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЦрдбрд╝рд╛ рд╣реИ, рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдпреЛрдЬрдирд╛ рдмрди рдЬрд╛рддреА рд╣реИ рддреЛ рдЕрдЧрд▓рд╛ рдХрджрдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореМрдЬреВрдж ~ рдФрд░ |> рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЕрдВрддрддрдГ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛ рдкрд░рд┐рд╡рд░реНрддрди рддреЛрдбрд╝рдирд╛ред

...

рдХреБрдЫ рд╕рд░рд▓ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗ рдЧрдПред

11608 рдХреЛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕рд╣рдорддрд┐ рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ ~ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд╛ рдПрдХ рдореМрдЬреВрджрд╛ рдорд╛рдорд▓рд╛ рдПрдХ рдЧрд▓рддреА рдереА (рдЖрд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ)ред рд╣рдо рдкрджрд╛рд╡рдирдд рдХрд░рдиреЗ рдФрд░ рдЕрдВрддрддрдГ рдЗрд╕рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рдЕрднреА рддрдХ рдЗрд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рдЬреВрд▓рд┐рдпрд╛рд╕реНрдЯреИрдЯреНрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рдлреЙрд░реНрдореВрд▓рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде) рдЕрднреА рддрдХред

рдореИрдХреНрд░реЛрдЬрд╝ рдЕрдм рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдЗрдирдкреБрдЯ рддрд░реНрдХ рд╣рдореЗрд╢рд╛ 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 рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рд░рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдВрджреБ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЕрдЧрд░ рдореИрдХреНрд░реЛ рд╕рд┐рд░реНрдл рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╕рднреА рдкреНрд░реЗрд╖рдг рд╢рдХреНрддрд┐ рд╣реЛрддреА рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдПрдХ рд╕рдЪреНрдЪрд╛ рдореИрдХреНрд░реЛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ ~ рдХреЗ рд╕рд╛рде рд╣реИ, рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рд╣рд╛рдВ, рдЖрдк рд╣реИрдХрд┐рд╢ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЗрд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛, рдФрд░ рдЗрд╕реЗ рдореИрдХреНрд░реЛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝рдирд╛ ... рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреА рдХреБрд░реВрдкрддрд╛ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдлрд┐рд░ рднреА, рдпрд╣ рдХрд┐рд╕реА рднреА рдореИрдХреНрд░реЛ рдХреЗ рд▓рд┐рдП рдЙрддрдирд╛ рд╣реА рдмрдбрд╝рд╛ рдореБрджреНрджрд╛ рд╣реИред рдпрджрд┐ рджреЛ рдкреИрдХреЗрдЬ рджреЛрдиреЛрдВ рдореИрдХреНрд░реЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ "рдЙрдкрдпреЛрдЧ" рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╕ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдЗрдВрдлрд┐рдХреНрд╕ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ? рдЦреИрд░, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ:

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЗрдВрдлрд┐рдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡реЗ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдХрд╛рд░реНрдп рд╕реЗ рдмрджрддрд░ рдирд╣реАрдВ рд╣реИрдВ; рдкреНрд░реЗрд╖рдг рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
  • рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ, |> рдФрд░ <| рдЬреИрд╕реЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ @ рдЧреНрд▓реЗрди-рдУ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрдХрд░рд╛рд╡ рдХреА рдмрд╣реБрдд рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдореИрдХреНрд░реЛ рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  • рд╡рд┐рд╢реЗрд╖-рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд▓реЗ DSL рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдКрдкрд░ рджрд┐рдП рдЧрдП SQL рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЯрдХреНрдХрд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИред
  • рдЖрд░ рдХреА ~ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдПред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рджрд┐рдЦрддрд╛ рд╣реИ; рдЖрд░ рдореЗрдВ, ~ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рднреА, рдпрд╣ рдкреНрд░рдмрдВрдзрдиреАрдп рд╣реИ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ:

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

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

felixrehren picture felixrehren  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

m-j-w picture m-j-w  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

musm picture musm  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

omus picture omus  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arshpreetsingh picture arshpreetsingh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ