Julia: рдкреНрд░рд╕рд╛рд░рдг рдХрд╛ рдПрдХ рдХрд╛рдо рдерд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрдЯрд░реЗрдЯрд░ рдФрд░ рдЬрдирд░реЗрдЯрд░ рдкрд░ рдкреНрд░рд╕рд╛рд░рдг)

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

рдпрд╣ рдЬрд╛рдирдХрд░ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ broadcast рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

dict = Dict(:a => 1, :b =>2)
<strong i="7">@show</strong> string.(keys(dict)) # => Expected ["a", "b"]
"Symbol[:a,:b]"

рдпрд╣ Broadcast.containertype Any рд▓реМрдЯрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реИ https://github.com/JuliaLang/julia/blob/413ed79ec54f3a754ac8bc57c1d29835d17bd274/base/broadcast.jl#L31
рдлреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рдгреА: https://github.com/JuliaLang/julia/blob/413ed79ec54f3a754ac8bc57c1d29835d17bd274/base/broadcast.jl#L265

рдкрд░рд┐рднрд╛рд╖рд┐рдд containertype рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП Array рдХрд┐ рдЗрдЯрд░реЗрдЯрд░ рдмреБрд▓рд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЬрдиреНрдо рджреЗ рдХреЗ рд▓рд┐рдП size рдЙрд╕ рдкрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ broadcast рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрдЯрд░реЗрдЯрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ iteratorsize(IterType) ред

map рдЗрд╕реЗ рдлреЙрд▓рдмреИрдХ map(f, A) = collect(Generator(f,A)) рд╕рд╛рде рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдЕрдзрд┐рдХ рд╕рдордЭрджрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ broadcast(f, Any, A) = f(A) рдХреА рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рднрд╛рд╖рд╛

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

рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИред broadcast рдЖрдХрд╛рд░ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред map рдЖрдХрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, broadcast рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ "рд╕реНрдХреЗрд▓рд░" рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ, рдЬрдмрдХрд┐ map рд╡рд░реНрдгреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рддрд╛ рд╣реИред

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

рдпрд╣ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╣реИред broadcast рдЖрдХрд╛рд░ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред map рдЖрдХрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, broadcast рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ "рд╕реНрдХреЗрд▓рд░" рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ, рдЬрдмрдХрд┐ map рд╡рд░реНрдгреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рддрд╛ рд╣реИред

рд╢рд╛рдпрдж рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдирдпрд╛ рдбреЙрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрддреАрдд рдореЗрдВ map рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рддрд░реАрдХрд╛ рд░рдЦрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд░рд╣реА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдбреЙрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред

рд╕рд╛рде рд╣реА, рдЬреИрд╕рд╛ рдХрд┐ @stevengj рдиреЗ рдкрд╣рд▓реЗ рдмрддрд╛рдпрд╛ рд╣реИ: map рдФрд░ broadcast рдмреАрдЪ рдЕрдВрддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рджреЛрдиреЛрдВ рд╣реЛрдиреЗ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред

@stevengj рд▓реЗрдХрд┐рди Iterators рдХрд╛ рдЖрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдЬрдирд░реЗрдЯрд░) http://docs.julialang.org/en/release-0.5/manual/interfaces/#interfaces

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

@pabloferz map рдФрд░ broadcast рдмреАрдЪ рдореБрдЦреНрдп рдЕрдВрддрд░ рд╕реНрдХреЗрд▓рд░ рдХрд╛ рдЙрдкрдЪрд╛рд░ рд╣реИред рдЕрдм рдЕрджрд┐рд╢ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдмрд╣рд╕ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ рдФрд░ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рд░ рдЪреАрдЬ рдЬрд┐рд╕рдореЗрдВ length(x) > 1 рдЙрд╕реЗ рдЕрджрд┐рд╢ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

broadcast (рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рднреА рдорд╛рдирддрд╛ рд╣реВрдВ) рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ size (рди рдХрд┐ рдХреЗрд╡рд▓ length ) рдФрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реЛрдирд╛ред рдЯреБрдкрд▓реНрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛ size рдмрд┐рдирд╛ рдХреБрдЫ рднреА рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ getindex рдпрд╛ рдЙрд╕ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рднреА рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред # 16769 рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдореИрдВ fill! рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░-рдмрд╛рд░ рдореВрд▓реНрдпрд╛рдВрдХрди (рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рди рдХреЗ рдмрдЬрд╛рдп) рдХреЗ рд╕рд╛рде рдПрдХ рд░рд╛рд╕реНрддрд╛ рдвреВрдВрдврддрд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдбреЙрдЯ-рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд╛рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдЬрдм a = zeros(2, 3); a .= [rand() for i=1:2, j=1:3] рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ (рд╣реЛрдЧрд╛) рд╕рд╕реНрддрд╛ a .= (rand() for i=1:2, j=1:3) рдирд╣реАрдВ рд╣реЛрдЧрд╛; рдпрд╣ рдЬрдирд░реЗрдЯрд░ рд╣реИ HasShape() , рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдЕрдиреБрдХреНрд░рдордг рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИред рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ/рдбреЙрдЯ-рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рд╕рдордЭ рдореЗрдВ рдореИрдВ рдмрд╣реБрдд рд╣рд▓реНрдХрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдпрд╣рд╛рдВ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛? рдЙрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреАрдЖрд░ (#22489) рд╣реИ...

@rfourquet , рдЖрдк a = zeros(2, 3); a .= rand.() рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдФрд░ рд╕рдЯреАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛: рдореИрдВ рдПрдХ рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ a .= (f(i, j) for i=1:2, j=1:3) ред

HasShape рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдЖрдпрд╛рдореЛрдВ рдХреА рдХреНрдпрд╛ рдХрдорд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА? рдРрд╕рд╛ рдХрд░рдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд▓рдЧрддрд╛ рд╣реИред

@nalimilan , рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдЪрд┐рдд рдФрд░ рд╢рд╛рдпрдж рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рддреЛрдбрд╝ рд░рд╣рд╛ рд╣реЛрдЧрд╛ рдЗрд╕рд▓рд┐рдП 1.0 рддрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ HasShape рдЗрдЯрд░реЗрдЯрд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ getindex рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ (1.0 рдХреЗ рд▓рд┐рдП) рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдЕрднреА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдкреЛрд╕реНрдЯ 1.0 . рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛

рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣реИрд╢реИрдк рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдЧреЗрдЯрдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЬрд░реВрд░реА рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛, рдореЗрд░реЗ рдкрд╛рд╕ #22489 рдкрд░ рдПрдХ рдкреАрдЖрд░ рд╣реИ рдЬреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

1.0 рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрдо рд╕реЗ рдХрдо рд╣рдо 1.x рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХреЗрдВ?

рдзрдиреНрдпрд╡рд╛рдж @nalimilan рдЗрд╕реЗ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рднреА рдРрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЕрдЧрд░ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рджрд╛рдИрдВ рдУрд░ HasShape рдЬреЗрдирд░реЗрдЯрд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ 1.0 рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╣рдореЗрдВ рдЬреЗрдирд░реЗрдЯрд░ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдм рдЗрд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рддрд╛рдХрд┐ рдЗрд╕реЗ 1.x рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

:+1: рдЯреНрд░рд╛рдЗрдПрдЬ рдЗрд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ (рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк) рдмрдирд╛рдиреЗ рдпрд╛ рдЙрд╕ рдкрд░ collect рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ (рдпрджрд┐ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ)ред

map рдЕрдкрдиреЗ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ, рдФрд░ рдЙрди рд╕рднреА рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реА рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдореЗрдВ, broadcast рд╕рдорд╛рди рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕рдХреЗ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдВ рдпрджрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП size рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИред рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХреЛ fill рд╕рд╛рде рд▓рдкреЗрдЯрдХрд░ рдкреНрд░рд╕рд╛рд░рдг рдореЗрдВ рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ 0-рдбреА рд╕рд░рдгреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

julia> fill("a")
0-dimensional Array{String,0}:
"a"

julia> fill([2])
0-dimensional Array{Array{Int64,1},0}:
[2]

рдХреНрдпрд╛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рд╕реНрдХреЗрд▓рд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ? рдпрд╣ рдмрд╣реБрдд рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд╣реАрдВ рд▓рдЧрддрд╛ред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рдпрд╛ рддреЛ рдХрд┐рд╕реА рднреА рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдХрд╛ рд╕рдорд░реНрдерди рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЬрдм рддрдХ рд╣рдо рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддрдм рддрдХ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ BroadcastStyle рдореЗрдВ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Base.iteratorsize HasLength рдЬреИрд╕реЗ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд▓рд┐рдП рднреА Symbol рд▓реМрдЯрд╛рддрд╛ рд╣реИред рд╣рдо рдПрдХ Base.isiterable рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреЗрд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреЛ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ), рдпрд╛ Base.iteratorsize рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ NotIterable (рдЬреЛ HasLength рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ)

(рднрд╡рд┐рд╖реНрдп рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдореБрд╢реНрдХрд┐рд▓ рдорд╛рдорд▓рд╛: UniformScaling ред)

@timholy рдЪреВрдВрдХрд┐ рдЖрдкрдиреЗ broadcast рдХрд╛ рд░реАрдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рд╣реИ, рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

@JeffBezanson , broadcast рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрд▓рд░ рдХреЛ "рдкреНрд░рд╕рд╛рд░рд┐рдд" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП ["bug", "cow", "house"] .* "s" ----> ["bugs", "cows", "houses"] ред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ map рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдЕрд▓рдЧ рд╣реИред

рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ broadcast рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХреЗред рдПрдХ рдЕрдкрд░рд┐рдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрдирд╛ рдЗрд╕реЗ рдмрд╣реБрдд рдХрдо рдЙрдкрдпреЛрдЧреА рдмрдирд╛ рджреЗрдЧрд╛ред

рдЙрд╕ рдкрд░ рдХреБрдЫ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ broadcast рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЛ рдХрдВрдЯреЗрдирд░ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрдХ рдЕрд╕рдВрдмрдВрдзрд┐рдд рдкреАрдЖрд░ (https://github.com/JuliaLang/julia/pull/25339) рдореЗрдВ, @ рдХреЗрдиреЛ рдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП applicable(start, (x,)) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ x рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВред рдХреНрдпрд╛ рд╣рдореЗрдВ рдпрд╣рд╛рдВ рднреА рдпрд╣реА рддрд░реАрдХрд╛ рдЕрдкрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рдореБрдЭреЗ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреА рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ (рдпрд╛ рддреЛ Base.iteratorsize рдпрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд) рд╣реЛрдирд╛ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди start рднреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ applicable(start, (x,)) ; рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдореИрдВрдиреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдФрд░ рдЙрдирдХреА рдХрдорд┐рдпреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП #25356 рджрд╛рдпрд░ рдХрд┐рдпрд╛ рд╣реИред

@stevengj рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ ["bug", "cow", "house"] .* "s" ----> ["bugs", "cows", "houses"] , рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рддрд╛рд░ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рд╕реНрдХреЗрд▓рд░ рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд╡реИрд╕реЗ рднреА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯ-рдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ keys(dict) рдЕрдм рдПрдХ AbstractSet рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо AbstractSet рд▓рд┐рдП рдПрдХ рдкреНрд░рд╕рд╛рд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдУрдкреА рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдареАрдХ рдХрд░ рджреЗрдЧрд╛ред рд╣рдо рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП Generator рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

AbstractSet рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдкреНрд░рд╕рд╛рд░рдг рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд▓рдЧрддрд╛ рд╣реИ: рдЖрдк рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд╕рд╛рде AbstractSet рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреНрд░рдо рдПрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ "рдкреНрд░рд╕рд╛рд░рдг" рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрде рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред

рд╣рд╛рдВ, рдореИрдВрдиреЗ рдкреАрдЖрд░ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╕рдордп рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╕реЗрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИ рдЬреЛ рдкреНрд░рд╕рд╛рд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред Generator рдФрд░ ProductIterator рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЗ рд╣реИрдВред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрддреНрддрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ (рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ) рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рдкрд╛рд╕ рд╣реИ HasShape , рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ? рдУрдкреА рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рдмрд╣реБрдд рд╕реБрдВрджрд░ рд╣реИред

рдЕрдиреНрдп рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рд┐рдЪрд╛рд░: рд╢рд╛рдпрдж 1 рддрд░реНрдХ (рдЬреИрд╕реЗ string.(x) ) рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ map рдЬреИрд╕рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдХрд╛рд░ рд╕рдВрдЧрддрддрд╛ рдХреЛрдИ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ?

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рд╣реИрд╢рд╢реИрдк рд╡рд╛рд▓реЗ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛ (рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛) рд╣реИ, рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ? рдУрдкреА рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдиреНрдпрдерд╛ рдмрд╣реБрдд рд╕реБрдВрджрд░ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ HasLength рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдордЬрдмреВрдд рдХрд╛рд░рдг рд╣реИред рд╣рдо рдЯреБрдкрд▓реНрд╕ рдкрд░ рдкреНрд░рд╕рд╛рд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ size рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ), рддреЛ рдХреНрдпреЛрдВ рди рдЯреБрдкрд▓реНрд╕ рдЬреИрд╕реЗ рдЖрдХрд╛рд░рд╣реАрди рдЗрдЯрд░реЗрдЯрд░ рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, keys(::OrderedDict) рд╕рд╛рде broadcast рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╣реА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЕрдЧрд░ рд╣рдо рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдЧ рдЕрдкрдиреЗ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ HasShape рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реБрднрд╛рдПрдВрдЧреЗ рддрд╛рдХрд┐ рд╡реЗ broadcast (рдФрд░ рдЕрдЪреНрдЫрд╛ рдбреЙрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕) рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХреЗрдВред

рд╕реНрдЯреАрд╡ рдХреЛ рдЙрджреНрдзреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,

broadcast рдЖрдХрд╛рд░ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ

HasShape рдЗрд╕реЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрдЪрд┐рдд рддрд░реАрдХрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкрд░ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рддреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЕрд╕рдВрдЧрддрд┐ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЯреБрдкрд▓реНрд╕ рдХреЛ рдХрдВрдЯреЗрдирд░ рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╡реИрд╕реЗ рднреА рдмрд╣реБрдд рдЦрд╛рд╕ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЙрдирдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ: рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдХрд┐ рд╡реЗ рдПрдХрдорд╛рддреНрд░ рд╕рдВрдЧреНрд░рд╣ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ @stevengj рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпреЛрдВ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ broadcast рдХреЛ рдХреЗрд╡рд▓ рдЖрдХрд╛рд░ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдЖрдк рдЯреБрдкрд▓реНрд╕ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдорд╛рдирдиреЗ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ broadcast (#16986) рдореЗрдВ рдЯреБрдкрд▓реНрд╕ рдХреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдФрдЪрд┐рддреНрдп рдпрд╣ рдерд╛ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдХреНрд╕рд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рд╡реИрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ broadcast рдореЗрдВ "рд╕реНрдХреЗрд▓рд░" рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдмрд╕ рдирд╣реАрдВ рдерд╛ рд╡реИрд╕реЗ рднреА рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреАред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ (рдП) рдХреЛ рдЕрдХреНрд╕рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП "рдкрд░рдорд╛рдгреБ" рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ (рдмреА) рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ рдЕрдиреБрдХреНрд░рдордг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡реЗ broadcast рдврд╛рдВрдЪреЗ рдореЗрдВ рдмрд╣реБрдд рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВред

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореИрдВ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ HasShape iterators рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ broadcast ред рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╣реИ рдХрд┐ HasShape рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ getindex рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╣реИ рдХрд┐ HasShape рд╣реЛрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ getindex рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдХреНрдпрд╛ #22489 рдХреБрдЫ рдорджрдж рдХрд░реЗрдЧрд╛, рдпрд╛рдиреА рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ?

рдХреНрдпрд╛ #22489 рдХреБрдЫ рдорджрдж рдХрд░реЗрдЧрд╛, рдпрд╛рдиреА рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ?

рд▓реЗрдХрд┐рди рддрдм рдХреЗрд╡рд▓ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ broadcast рд╕рд╛рде рд╕рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдпрд╣ рдмрд╣реБрдд рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рд▓рдЧрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдХрд┐рд╕реА рднреА рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП keys(::OrderedDict) ) рдХреЗ рд▓рд┐рдП string.(itr, "1") рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдФрд░ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдордг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЙрди рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдВрдЧреЗ рдЬреЛ 0.7/1.0 рдореЗрдВ рдЕрдиреБрдХреНрд░рдордг рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдж рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╡реИрд╕реЗ рднреА рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рд╣рдо 1.x рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЬреЛ рднреА рд╡реНрдпрд╡рд╣рд╛рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@stevengj рдореИрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ HasLength рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ рдЯреБрдкрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдЪрд╛рд╣рд┐рдП? рдореИрдВрдиреЗ рдЕрдм рддрдХ рдЗрд╕рдХрд╛ рдХреЛрдИ рдФрдЪрд┐рддреНрдп рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИред

@nalimilan , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ + рд╣реИрд╢реИрдк рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ broadcast рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд░рдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЗрд╕рдХреЗ рдЕрд░реНрде рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ - рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░, рдЖрдкрдХреЛ рдмрд╕ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП map ред

рдХрд┐рд╕реА рднреА рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдХреЗ рд▓рд┐рдП string.(itr, "1") рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ ... рд╡реИрд╕реЗ рднреА рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред

рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдорд╛рдорд▓рд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ - "1" рддрд░реНрдХ рд╕реНрд╡рдпрдВ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП PyObject s PyCall рдореЗрдВ start рдЖрджрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ), рдЬрд┐рд╕рдореЗрдВ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реЗрдЯ рдЬреИрд╕реА рдЪреАрдЬреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬрд╣рд╛рдВ broadcast рдЕрд╡рдзрд╛рд░рдгрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреВрдЯ рдЧрдИ рд╣реИред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ #24990 map рдХреЛ рдЕрдм рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдФрд░ рднреА рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк map(string(_,"1"), itr) рдХрд░ рдкрд╛рдПрдВрдЧреЗред

@nalimilan , рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдордгреАрдп + рд╣реИрд╢реИрдк рдЗрдЯрд░реЗрдЯрд░ рдкреНрд░рд╕рд╛рд░рдг рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд░рдЯрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЗрд╕рдХреЗ рдЕрд░реНрде рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ - рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░, рдЖрдкрдХреЛ рдмрд╕ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП map.

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

рдореИрдВ рдЙрди рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЙрдард╛рдиреЗ рдХреЗ рдЗрдЪреНрдЫреБрдХ рд╣реВрдВ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рддрд╛рдХрд┐ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХреЗрдВ, рдмрдЬрд╛рдп рдЦреБрдж рдХреЛ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдмрдВрдж рдХрд░ рджреЗрдВ рдЬреЛ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИ (рдпрд╛рдиреА рдХреБрдЫ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдирд╛) . рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рддреА рд╣реИ, broadcast рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

(рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, PyObject рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдИрдЖрдИрдпреВрд╕реА рдпрд╣ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╛рдпрдерди рдЗрдЯрд░реЗрдЯрд░ рдХреЛ рд▓рдкреЗрдЯреЗрдЧрд╛ рдпрд╛ рдирд╣реАрдВред PyObject рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реИ, рдЬреИрд╕реЗ рдЗрд╕реЗ рдорд╛рдирдХ рдЬреВрд▓рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рддрд░рд╣ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП getfield рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реЗрдЯ рдЕрдзрд┐рдХ рдЬреВрд▓рд┐рдпрди рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред)

рд╣рдо рдЕрдиреБрдХреНрд░рдордгреАрдп HasShape рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣реАрдВ рдФрд░ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЯреНрд░рд╛рдЗрдПрдЬ рдХреЛ рд╕рднреА рддрд░реНрдХреЛрдВ (рдЬреИрд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░) рдкрд░ рдкреНрд░рд╕рд╛рд░рдг рдкреБрдирд░рд╛рд╡реГрддрд┐ рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ, рдФрд░ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдЪрд░рд┐рддреНрд░ рдЬреЛрдбрд╝рдирд╛ (рдЬреИрд╕реЗ const & = Ref рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдореБрджреНрджреЗ рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╛ рд╢рд╛рдпрдж ~ ) рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 0-рдбреА рддрд░реНрдХред

@vtjnash , рдЧреИрд░- HasShape рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рд╕реЗрдЯ рдЬреИрд╕реА рдЪреАрдЬрд╝реЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рд╛рд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рд╡рд░реНрддрдорд╛рди broadcast рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди getindex рдирд┐рдХрдЯрддрд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ ... рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ getindex рдмрд┐рдирд╛ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВрдЧреЗ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЖрдпрд╛рдореЛрдВ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП?

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЧреИрд░-рдЕрдиреБрдХреНрд░рдордгреАрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдХрдо рд╕реЗ рдХрдо рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рд░реНрдердХ рдХреНрд░рдо рд╣реИ)ред рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдЬрдм рд╕рднреА рдЗрдирдкреБрдЯ рдХрд╛ рдЖрдХрд╛рд░ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ; рдЬрдм рд╡реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдХрд╛рд░ рдХреЗ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЕрд▓рдЧ (рдЫреЛрдЯрд╛) рдЖрдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рдордзреНрдпрд╡рд░реНрддреА рднрдВрдбрд╛рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреАрдЖрд░ https://github.com/JuliaLang/julia/pull/22489 рд╕реЗ IteratorAccess рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд/рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред https://github.com/JuliaLang/julia/pull/24774 рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдЗрдЯрд░реЗрдЯрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реИрдВ (рдФрд░ рдЗрд╕рд▓рд┐рдП keys рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП) ред

рд╕реАрд╕реА: @rfourquet

рдЯреНрд░рд╛рдЗрдПрдЬ рдЗрд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ (рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк) рдмрдирд╛рдиреЗ рдпрд╛ рдЗрд╕ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ (рдпрджрд┐ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ) рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЯреНрд░рд╛рдЗрдПрдЬ рдпрд╣рд╛рдВ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рдгрдиреАрддрд┐ рддрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдКрдкрд░ @JeffBezanson рдХреА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ "рдпрд╣" рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣рдореЗрдВ рдЙрди рд╕рднреА рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдлреЗрдВрдХрдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдЕрднреА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк, рддрд╛рдХрд┐ рд╣рдо рдмрд╛рдж рдореЗрдВ рдХреБрдЫ рднреА рдХрд░ рд╕рдХреЗрдВ), рдпрд╛ рдХреНрдпрд╛ рд╣рдореЗрдВ рдХреБрдЫ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХрд┐рд╕ рд░реВрдк рдореЗрдВ (рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрдирд╛рдо рдирдИ рдкрд╕рдВрдж Base.IteratorSize )? рдХреНрдпрд╛ рд╣рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЗрдЯрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдиреА рдЪрд╛рд╣рд┐рдП (рддрд╛рдХрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреЗрд▓рд░ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рд╕рдХреЗрдВ)?

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ:

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рддрд░реНрдХ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
  • рддреНрд░реБрдЯрд┐ рджреЗрдВ рдпрджрд┐ рд╡рд╣ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
  • Ref(x) рдпрд╛ [x] рдХрд░реЗрдВ рддрд╛рдХрд┐ x рдХреЛ рдПрдХ рдЕрджрд┐рд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХреЗред
  • рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВ рдЬрд┐рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдмрдирд╛рдо рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЛ рдЕрджрд┐рд╢ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ (рд╢рд╛рдпрдж рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде) рдкрд░ рдиреЛрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ рд▓реЗрдХрд┐рди рдкреБрдирд░рд╛рд╡реГрддреНрдд рдмрдирд╛рдо рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмреАрдЪ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ "рд╣рд░ рддрд░реНрдХ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ" рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕рднреА рдЧреИрд░-рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП Scalar() рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП BroadcastStyle рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Number , Symbol рдФрд░ AbstractString )? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рд▓рдХреНрд╖рдг" рдЖрдЦрд┐рд░реА рдЧреЛрд▓реА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИред

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдореБрдЭреЗ рдЧреИрд░-рдЗрдВрдЯрд░реИрдмрд▓реНрд╕/рд╕реНрдХреЗрд▓рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдХрдо рдЦрд░реНрдЪреАрд▓рд╛ рд▓рдЧреЗрдЧрд╛ред рдореБрдЭреЗ рдбрд░ рд╣реИ рдХрд┐ рд╕рднреА рдЧреИрд░-рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЙрд╕ Scalar рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреБрдЫ (рд╕рдВрднрд╡рддрдГ рджреБрд░реНрд▓рдн) рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рд▓рдХреНрд╖рдг" рдЖрдЦрд┐рд░реА рдЧреЛрд▓реА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИ

рдирд╣реАрдВ, рдЖрдЦрд┐рд░реА рдмреБрд▓реЗрдЯ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреБрдЫ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рд╕рд╛рд░рдг рдЗрд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рддрд╛ рд╣реИ - рд╕реНрдХреЗрд▓рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрд▓реА рдЬрд╛рдПрдЧреАред рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЧреИрд░-рдкреБрдирд░рд╛рд╡реГрддреНрддреАрдп рдкреНрд░рдХрд╛рд░реЛрдВ (рдЬреИрд╕реЗ Type рдФрд░ Function рдЙрдкрдкреНрд░рдХрд╛рд░) рдХреЗ рд▓рд┐рдП, рддреЛ рд╣рдо рдПрдХ NotIterable рд╡рд┐рд╢реЗрд╖рддрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ MethodError рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ рдЬреЛ рдПрдХ рдорд╛рди (рд╡рд╣ рд╡рд╕реНрддреБ) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рдерд╛ред

рддреЛ рдореВрд▓ рд░реВрдк рд╕реЗ "рд╣рд░ рддрд░реНрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ" рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╕рднреА рдЧреИрд░-рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░реЛрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдВрдЦреНрдпрд╛, рдкреНрд░рддреАрдХ рдФрд░ рд╕рд╛рд░рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрд▓рд░() рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рд╕реНрдЯрд╛рдЗрд▓ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рд▓рдХреНрд╖рдг" рдЖрдЦрд┐рд░реА рдЧреЛрд▓реА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддрд╛ рд╣реИред

рдирд╣реАрдВ, Number рд╕рднреА рдЕрджрд┐рд╢ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╕реНрд╡рдпрдВ рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдареАрдХ рд╣реИрдВред рд╣рдореЗрдВ рдЗрд╕реЗ рдкреНрд░рддреАрдХ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред AbstractString рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

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

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╕рд╛рд░рдг рдХреЛ рдХреЗрд╡рд▓ рд╣реИрд╢реИрдк рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдЪрд╛рд╣рд┐рдП; рдпрд╣ рд╢реБрд░реВ рд╕реЗ рд╣реА рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдЙрд╕рдореЗ рдЧрд▓рдд рдХреНрдпрд╛ рд╣реИ?

рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдУрдкреА рдореЗрдВ рдПрдХ рд╣реИ; рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдХрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдПрдХ рдкрд╛рдЧрд▓ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред

рд╕рд╛рде рд╣реА, рдореБрдЭреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ "рд▓рдХреНрд╖рдг" рднрд╛рдЧ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдореЗрдВ рдкреВрд░реНрдг рдкреНрд░рд╕рдиреНрдирддрд╛ рд╣реЛрдЧреАред рдХреЛрдИ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░рддрд╛

julia> map(string, [1,2], :a)
ERROR: MethodError: no method matching start(::Symbol)

рд╕рдВрднрд╡рддрдГ рдУрдкреА рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ _all_ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рд╛рд░рдг рдХреЙрд▓ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ; рдпрджрд┐ рдХреЗрд╡рд▓ рдПрдХ рддрд░реНрдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдВрдЧреНрд░рд╣/рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ 1 .+ 1 рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП?

рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рддрд░реНрдХ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╖рдорддрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ: рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдиреАрдп рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЛ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд▓рд╛рдЬ рдХрд░рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдЬрдм рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рддрд░реНрдХ рдХреЛ рд▓рдкреЗрдЯрдХрд░ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддрд░реНрдХ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреБрдЫ рднреА рдЖрд╕рд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╕рд╛рд░рдг рдХреЛ рдХреЗрд╡рд▓ рд╣реИрд╢реИрдк рдЗрдЯрд░реЗрдЯрд░реНрд╕ рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдЪрд╛рд╣рд┐рдП; рдпрд╣ рд╢реБрд░реВ рд╕реЗ рд╣реА рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдЙрд╕рдореЗ рдЧрд▓рдд рдХреНрдпрд╛ рд╣реИ?

@stevengj рдХреНрдпрд╛ рдЧрд▓рдд IMHO рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдЪрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЗрд▓рд╛рдЬ HasLength рдЬреИрд╕реЗ iterators Tuple , рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рдо рдЕрднреА рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ 1.x рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХреЛрдИ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░рддрд╛

рдЬреВрд▓рд┐рдпрд╛> рдирдХреНрд╢рд╛ (рд╕реНрдЯреНрд░рд┐рдВрдЧ, [1,2],: рдП)
рддреНрд░реБрдЯрд┐: MethodError: рдХреЛрдИ рд╡рд┐рдзрд┐ рдорд┐рд▓рд╛рди рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ (:: рдкреНрд░рддреАрдХ)

@JeffBezanson OTC, рдореИрдВ broadcast рдХреЗ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ :a рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреИрд╕реЗ DataFrame рдХреЙрд▓рдо рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ред рдХреНрдпрд╛ рдЖрдк broadcast рдХреЛ map рдЬреИрд╕реА рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╖рдорддрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ: рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдиреАрдп рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЬреАрдм рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдХреЗрд▓рд░ рдХреЛ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд▓рд╛рдЬ рдХрд░рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдЬрдм рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рддрд░реНрдХ рдХреЛ рд▓рдкреЗрдЯрдХрд░ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рддрд░реНрдХ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдХреБрдЫ рднреА рдЖрд╕рд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдореИрдВ @stevengj рд╕реЗ рд╕рд╣рдордд рд╕реНрдХреЗрд▓рд░реНрд╕ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ред рдмреЗрд╢рдХ Number рдкреНрд░рдХрд╛рд░ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ, рдЭреБрдВрдЭрд▓рд╛рд╣рдЯ рд╣рдореЗрд╢рд╛ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧреА, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ Symbol рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред Char рдПрдХ рдФрд░ рд╣реЛрдЧрд╛, рдФрд░ рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрдИ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рднреА рдЗрд╕рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╣реЛрдВрдЧреЗ (рдФрд░ рдЕрдВрдд рдореЗрдВ рдЙрдирдХреЗ BroadcastStyle рдХреЛ Scalar() рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЬрдбрд╝ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕реНрдХреЗрд▓рд░ рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╣реАрдВ рд╣реИред рддреЛ рд╕рдмрд╕реЗ рд╕реАрдзрд╛ рд╕рдорд╛рдзрд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ HasShape рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдирд╛ рдерд╛ ( HasLength рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рд╕рд╣рд┐рдд, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ)ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдЧреНрд░рд╣/рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЕрдЧрд░ рд╣рдо start рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рд╣реВрдВ рдбрд░ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдЬреЗрдл рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ https://github.com/JuliaLang/julia/issues/18618#issuecomment -360594955 рдореЗрдВ Symbol рдФрд░ Char рдХреЛ "рд╕реНрдХреЗрд▓рд░" рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирддреЗ рд╣реБрдП рдкреНрд░рд╕рд╛рд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИ - рд╡реЗ рдмрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдСрдкреНрдЯ-рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ start рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рд╕рдореНрдореЛрд╣рдХ рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рд╣реИ рдХрд┐ "рд╕рдВрдЧреНрд░рд╣" рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рд╕рдордЭрджрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реИред рд╣рд╛рдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рддрд╛рд░ рд╕рдВрдЧреНрд░рд╣ рд╣реИрдВред рдХрднреА-рдХрднреА рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ! рддреЛ рдЪрд▓рд┐рдП рдЙрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИрдВ рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдХреЙрд▓ рд╕рд╛рдЗрдЯ рдкрд░ рджреВрд╕рд░реЗ рдХреЛ рдСрдкреНрдЯ-рдЗрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣рд╛рдБ рдПрдХ рдорд╕реНрд╕рд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВ (рд╡реЗ HasShape ) рднреА рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╢реВрдиреНрдп-рдЖрдпрд╛рдореА рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐, рдЕрдкрдиреЗ рддрд╛рд░реНрдХрд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛, 1 .+ 2 != 3 ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ fill(3, ()) рд╣реЛрдЧрд╛ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдзрд╛рдЧреЗ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдореЗрдВ, рдкреНрд░рд╡рдЪрди рдореЗрдВ рдЪрд▓реЗ рдЧрдП:

https://discourse.julialang.org/t/lazycall-again-sorry/8629

# 18618 (рдЯрд┐рдкреНрдкрдгреА) рдореЗрдВ рдЬреЗрдл рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдкреНрд░рддреАрдХ рдФрд░ рдЪрд╛рд░ рдХреЛ "рд╕реНрдХреЗрд▓рд░" рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИ - рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдСрдкреНрдЯ-рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреНрд░рд╛рд░рдВрдн рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

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

рдЬрдм рддрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ, рддрдм рддрдХ рдореИрдВ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдЬреИрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд▓реЗрдХрд░ рдЕрддреНрдпрдзрд┐рдХ рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реВрдВред

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

  • map рдХреЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реЗ рджреГрдврд╝рддрд╛ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдорд╛рдиреНрдп рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕реА рднреА рдордирдорд╛рдиреА iterable рд▓рд┐рдП рдЖрд▓рд╕реА out = map(f, iterable) рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ first(out) рд╣реИ f(first(iterable)) , рдФрд░ рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЖрд▓рд╕реА рдСрдкрд░реЗрд╢рди рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • broadcast рдХреЛ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдордЬрдмреВрддреА рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣ рдорд╛рдиреНрдп рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдЖрд▓рд╕реА out = broadcast(f, indexable) рдЬреИрд╕реЗ рдХрд┐ out[i] f(indexable[i]) , рдФрд░ рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдЖрд▓рд╕реА рдСрдкрд░реЗрд╢рди рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ broadcast рдХрдИ рдЗрдирдкреБрдЯ рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рд╡рд╣ рд╕рднреА рдлреИрдВрд╕реА рд╕рд╛рдорд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╣ рдЕрдм рдХрд░рддрд╛ рд╣реИред рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП, рд╕реНрдХреЗрд▓рд░ рд╡реЗ рдЪреАрдЬреЗрдВ рд╣реЛрдВрдЧреА рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдиреБрдХреНрд░рдорд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрд╛ Number рдФрд░ Ref рдФрд░ AbstractArray{0} рдЬреИрд╕реЗ рдорд╛рдореВрд▓реА рд░реВрдк рд╕реЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛)ред

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рдВрдЫрдиреАрдп рд╣реЛрдЧрд╛ рдпрджрд┐ рдПрдХ-рддрд░реНрдХ map рдФрд░ рдПрдХ-рддрд░реНрдХ broadcast рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдорд╛рди рдЪреАрдЬреЗрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкреБрдирд░рд╛рд╡рд░реНрддрдиреАрдп рдФрд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рджреЛрдиреЛрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ AbstractDict рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ getindex рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд▓реМрдЯрд╛рддреА рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдПрдХреАрдХрд░рдг рдЕрд╡рд░реБрджреНрдз рд╣реИред :frowning_face: (рд╣рдорд╛рд░реЗ рдЕрдиреНрдп рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░ рдареАрдХ рд▓рдЧрддреЗ рд╣реИрдВ)

(рдореЗрд░реЗ рд▓рд┐рдП, рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рдкреЗрдЯрдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ ["bug", "cow", "house"] .* ("s",) рдпрд╣рд╛рдВ рдбреАрд▓-рдмреНрд░реЗрдХрд░ рдХреА рддрд░рд╣ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрдм рдореИрдВ 3-рд╡реЗрдХреНрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ "рдПрдХрд▓ 3D рдмрд┐рдВрджреБ" рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ рдФрд░ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдмрд╣реБрдд рдХрдард┐рди рдирд╣реАрдВ рд╣реИ (xref #18379))ред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ broadcast рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓рдЧрд╛рддрд╛рд░ рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП collect(eachindex("a╬▒bЁЯРи╬│z")) [1, 2, 4, 5, 9, 11] , рдЬреЛ рдЕрдиреБрдХреНрд░рдордг рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рднреА broadcast рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдмреБрд░реА рддрд░рд╣ рд╕реЗ рдЦреЗрд▓реЗрдЧрд╛ред

рд▓реЗрдХрд┐рди рдЗрдВрдбреЗрдХреНрд╕реЗрдмрд▓ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЛрдирд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдСрдкреНрдЯ-рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рд╡рдХрд╛рд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓рдЧрд╛рддрд╛рд░ рд╕реВрдЪрдХрд╛рдВрдХ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдзрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдореЗрдВ рдордирдорд╛рдиреА рд╕реВрдЪрдХрд╛рдВрдХ рд╣реЛрдВрдЧреЗред

рд╣рд╛рд▓рд╛рдВрдХрд┐, broadcast(f, ::String) рдПрдХ рдирдпрд╛ String рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдЗрдирдкреБрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд╕рдорд╛рди рд╣реА рд░рд╣реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпреВрдЯреАрдПрдл -8 рдХреИрд░реЗрдХреНрдЯрд░ рдЪреМрдбрд╝рд╛рдИ f рддрд╣рдд рдмрджрд▓ рд╕рдХрддреА рд╣реИ ( рдЙрд╕ рдЧрд╛рд░рдВрдЯреА рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ AbstractDict{Int, Char} рддрд░рд╣ рдХреБрдЫ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ!) рдореИрдВ рд▓рдЧрднрдЧ рдпрд╣реА рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдПрдХ String рд╕реВрдЪрдХрд╛рдВрдХ рд╢рдмреНрджрд╛рд░реНрде-рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреЗ рдмрдЬрд╛рдп рддреЗрдЬреА рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП "рдЯреЛрдХрди" рдХреА рддрд░рд╣ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рдПрдХ рд╕рдордХрдХреНрд╖ рдпреВрдЯреАрдПрдл -32 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдмрджрд▓ рдЬрд╛рдПрдВрдЧреЗ)ред

рдЕрдЧрд░ рд╣рдо рдкреНрд░рд╕рд╛рд░рдг рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдкреНрдЯ-рдЗрди рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ; рдореИрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп broadcast(f, ::Any) рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ, broadcast(f, ::AbstractDict) рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ (рдФрд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЙрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдЧрд╛ рдЬреЛ рдореИрдВрдиреЗ # реирелрепрежрек рдореЗрдВ рдЙрдард╛рдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рдд рдкреНрд░рд╕рд╛рд░рдг рдкрд░ рд╢рдмреНрджрдХреЛрд╢ рдорд╛рди рдФрд░ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдирд╣реАрдВ)ред

рдХреНрдпрд╛ рд▓реЛрдЧ рд╡рд╛рдХрдИ рдЗрд╕ рдмрджрд▓рд╛рд╡ рд╕реЗ рдЦреБрд╢ рд╣реИрдВ? рдореИрдВ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдХрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдХрдВрдЯреЗрдирд░ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ , рдЬрдмрдХрд┐ рдореИрдВ рдЙрди рдЪреАрдЬреЛрдВ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рд░ рд╕рдордп рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ 'рдареАрдХ' рдХрд░рдиреЗ рдХреА рд╣рд░ рдЪреЗрддрд╛рд╡рдиреА рдЪреЗрддрд╛рд╡рдиреА рдореБрдЭреЗ рдЖрдВрд╕реВ рдмрд╣рд╛рддреА рд╣реИред

рдореИрдВ рдЙрди рдЪреАрдЬреЛрдВ рдкрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП _рд╣рд░ рд╕рдордп_ред

рд╡реЗ рдЪреАрдЬреЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реИрдВ?

рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛ рдПрдХ рдЕрдиреБрдХреВрд▓рди рдореЙрдбрд▓ рдкреНрд░рдХрд╛рд░ Model рдФрд░ рдПрдХ рдирд┐рд░реНрдгрдп рдЪрд░ рдкреНрд░рдХрд╛рд░ Variable рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЗ рдкрд╛рд╕ x::Vector{Variable} рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдк рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдореЙрдбрд▓ model рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ value(::Variable, ::Model)::Float64 ред рдкрд╣рд▓реЗ, рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рдереЗ:

value.(x, model)

рдпрд╣ рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рддрд░реНрдХ рдкреНрд░рдХрд╛рд░ рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рд╕реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП broadcastable рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдирд╛ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯрд╛рдЗрдк рдкрд╛рдпрд░реЗрд╕реА рд╣реЛрдЧрд╛ред рддреЛ рдЖрдкрдХреЛ Ref рдпрд╛ рдПрдХ-рддрддреНрд╡ рдЯрдкрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рджреБрд░реНрдЧрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрд╕реНрдкрд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдХреЛ рдмрд╣реБрдд рдХрдо рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдмрдирд╛рддрд╛ рд╣реИред

рд╣рд╛рдВ, рдореИрдВ рдЖрдкрдХреА рдмрд╛рдд рджреЗрдЦрддрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИред рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдкреБрд░рд╛рдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдерд╛ - рдпрд╣ рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ "рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЙрд▓рдмреИрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИ"ред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЪрд╛рд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдЬреЛ рдЧрд▓рдд рдлрд╝реЙрд▓рдмреИрдХ рд╕реЗ рдмрдЪрддреЗ рд╣реИрдВ:

  1. рдХреБрдЫ рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП _everything_ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
  2. рдЪреАрдЬреЛрдВ рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдФрд░ рдЧреИрд░-рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐/рдмрд╣рд┐рд╖реНрдХрд╛рд░ред

    • рд╣рдо рдХреЗрд╡рд▓ iterate рдЕрдЬреНрдЮрд╛рдд рд╡рд╕реНрддреБрдУрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдпрд╣ рд╕реНрдХреЗрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА

    • рд╕реНрдХреЗрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рджреЛ рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рд╣реИрдВ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рд╕рд╛рдЗрдЯ рдкрд░ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЗрдЦрдХ рдЕрд▓рд┐рдЦрд┐рдд рд╕реНрдХреЗрд▓рд░-рдЬреИрд╕реЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯ-рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  3. рдЪреАрдЬреЛрдВ рдХреЛ рдЕрджрд┐рд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдФрд░ рдЕрдЬреНрдЮрд╛рдд рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐

    • рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдХреЗрд╡рд▓ рд╕реНрдХреЗрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд┐рдзрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реИрдВ, рд╣рдореЗрдВ рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ iterate рдПрдХ рд╡рд┐рдзрд┐ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИред рдпрд╣ рдзреАрдорд╛ рдФрд░ рдШреБрдорд╛рд╡рджрд╛рд░ рд╣реИред

    • рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рддреНрд░реБрдЯрд┐ рди рд╣реЛ: рдЙрдирдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯ-рдЗрди рдХрд░реЗрдВред рдпрд╣ рдПрдХ рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкреАрдЫреЗ рдХреА рдУрд░ рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдЙрджреНрджреЗрд╢реНрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред

  4. applicable(iterate, тАж) рдЬрд╛рдВрдЪреЗрдВ рдФрд░ рдЙрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓реЗрдВ

    • рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн/рдЕрдЧрд▓реЗ/рдХрд┐рдП рдЧрдП рдмрд╣рд┐рд╖реНрдХрд░рдг рддрдВрддреНрд░ рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рд░реИрдкрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╕рджрд╕реНрдп рдХреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реИред

рд╡рд┐рдХрд▓реНрдк 1 рд╕рднреА рдХреЗ рд▓рд┐рдП рдмрджрддрд░ рд╣реИ, рд╡рд┐рдХрд▓реНрдк 2 рдпрдерд╛рд╕реНрдерд┐рддрд┐ рд╣реИ, рдФрд░ рд╡рд┐рдХрд▓реНрдк 3 рдкреАрдЫреЗ рдХреА рдУрд░ рд╣реИ, рдФрд░ рд╡рд┐рдХрд▓реНрдк 4 рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдХрднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЪрд░реНрдЪрд╛ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд╣реБрдИ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдФрд░ https://github.com/JuliaLang/julia/pull/25356 рдореЗрдВ nalimilan рдЦрд┐рд▓рд╛рдл рджреЗрдЦреЗ рдЧрдП рддрд░реНрдХреЛрдВ рд╕реЗ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реВрдВред stevengj рдХреА рд╕реНрдерд┐рддрд┐ред

рдХрд╕реНрдЯрдо рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдПрд╕реНрдХреЗрдк рд╣реИрдЪ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рддреНрд░реБрдЯрд┐ рди рд╣реЛ: рдЙрдирдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯ-рдЗрди рдХрд░реЗрдВред рдпрд╣ рдПрдХ рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкреАрдЫреЗ рдХреА рдУрд░ рд▓рдЧрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдЙрджреНрджреЗрд╢реНрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред

рдпрд╣ рдореЗрд░реА рдЕрд╕рд╣рдорддрд┐ рдХрд╛ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЬреВрд▓рд┐рдпрд╛ рдХреЛрдб рдореЗрдВ # of iterator types << # of types that should be treated as scalars in a broadcast situation < # of broadcast calls ред рддреЛ рдореИрдВ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ рдпрджрд┐ рдкреНрд░рд╕рд╛рд░рдг рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп, рдХреБрдЫ 'рдЕрддрд┐рд░рд┐рдХреНрдд' рдХреЛ рдЗрдЯрд░реЗрдЯрд░ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдпрджрд┐ рдХреЛрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрдирд╕реЗ рдПрдХ рдФрд░ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдпрд╣ _is_ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдЪрд┐рдд рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рд▓реЗрдЦрдХ рдХреЛ рдЙрдирдХреЗ рд╕рднреА рдЧреИрд░-рдкреБрдирд░рд╛рд╡реГрддреНрдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП Base.broadcastable(x) = Ref(x) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рдПред broadcast рдХреЙрд▓ рдХреЗ рдЙрдЪреНрдЪ рдкреНрд░рддрд┐рд╢рдд рдореЗрдВ рдмрджрд╕реВрд░рдд (IMHO) Ref s рд╕реЗ рдмрдЪреЗрдВред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рдЕрдЪреНрдЫреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ , рдпрд╛ рдЗрд╕реЗ рдПрдХ рдирдП рдЗрдЯрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП Base.iteratorsize рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдФрд░ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд HasLength рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛)ред рдлрд╝реЙрд▓рдмреИрдХ broadcastable рд╡рд┐рдзрд┐ рддрдм рдЙрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╛, рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкреНрдпрд╛рд░ рдореЗрдВ рд╣реИрдВ, рддреЛ рдЖрдк (рдкреЛрд╕реНрдЯ-рдбрд┐рдкреНрд░реЗрд╢рди-рд░рд┐рдореВрд╡рд▓) рдЙрд╕ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ applicable(iterate, ...) рд░реВрдк рдореЗрдВ https://github.com/JuliaLang/ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред String рдЬреИрд╕реЗ рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдЕрднреА рднреА broadcastable рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ 0.6 рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ рдФрд░ #26421 рдФрд░ #19577 рдФрд░ #23197 рдФрд░ #23746 рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдзрд┐рдХ - рдЗрд╕рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред

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

рдЖрдк рд╕рд╣реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрдЯрд░реЗрдЯрд░-рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ "рд╕реНрдХреЗрд▓рд░-рдЬреИрд╕реЗ" рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЦрдбрд╝рд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рд╕рд╛рд░рдг рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрдВрдЯреЗрдирд░реЛрдВ рдкрд░ рдПрдХ рдСрдкрд░реЗрд╢рди рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ f.(x) рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдореИрдкрд┐рдВрдЧ рдХрд░реЗрдЧрд╛ рдФрд░ рди рдХреЗрд╡рд▓ f(x) ред

рдФрд░, рдЕрдВрдд рдореЗрдВ, рдХрдВрдЯреЗрдирд░ рдЬреЛ рд╕реНрдХреЗрд▓рд░-рдбрд┐рдлреЙрд▓реНрдЯ рдЙрдкрдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд╕рд╛рде рддрддреНрд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, String рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдХреЗрд▓рд░ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рд╢реЗрд╖-рдЖрд╡рд░рдг рд╣реИ; "рдкрд╣реБрдВрдЪрдирд╛" рдФрд░ рддрддреНрд╡ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реЛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, isletter.("a1b2c3") )ред рдпрд╣ рд╡рд┐рд╖рдорддрд╛ рддрд░реНрдХ рд╣реИ: рдЖрдк рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рд░реЗрдлрд░реА рдореЗрдВ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рд╕рд╛рд░рдг рдпреЛрдЧреНрдп рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ collect рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рди рд╕рдХреЗрдВред

рд╡реЗ рдореБрдЦреНрдп рддрд░реНрдХ рд╣реИрдВред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд░реЗрдлрд░реА рдХреА рдХреБрд░реВрдкрддрд╛ рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕рд╣рдордд рд╣реВрдВред рдПрдХ рд╕рдорд╛рдзрд╛рди # 27608 рд╣реИред

рдХрд╛рдлреА рдЙрдЪрд┐рддред рдореЗрд░реЗ рдкрд╛рд╕ рдЙрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХреЛрдИ рдиреЙрдХрдбрд╛рдЙрди рддрд░реНрдХ рдпрд╛ рдЬрд╛рджреБрдИ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдФрд░ https://github.com/JuliaLang/julia/pull/27608 рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдЧрд╛ред

@tkoolen рдореБрдЭреЗ рд╡рд╣реА рдЪрд┐рдВрддрд╛рдПрдВ рдереАрдВ рдФрд░ рдХреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред

@mbauman рдКрдкрд░ рджрд┐рдП рдЧрдП рддрд░реНрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЛ рдкреНрд░рд╢реНрди рджрд┐рдП рдЧрдП рд╣реИрдВ:

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

2) рддреЛ рдпрд╣ f.(x) рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ x рдПрдХ рдЕрджрд┐рд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред
f.(x, y, z) рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдЯрд░ рдЪреЗрддрд╛рд╡рдиреА/рддреНрд░реБрдЯрд┐ рдХреНрдпреЛрдВ рдирд╣реАрдВ, рдЬреИрд╕реЗ "'f' рдХреЗ рд╕рднреА рддрд░реНрдХ рд╕реНрдХреЗрд▓рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ"?

рд╡реИрд╕реЗ рднреА, #реиренрелремрей (рдЬреИрд╕реЗ #реиренремрежрео) рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рез.реж.реж рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рджреЗрдирд╛ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╣реЛ рд╕рдХрддреА рд╣реИред
[реж.рен рдФрд░ рез.реж.реж-рдЖрд░рд╕реАрез.реж рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реБрдзрд╛рд░ рдХреЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛]ред

рд╡реИрд╕реЗ рднреА, #реиренрелремрей (рдЬреИрд╕реЗ #реиренремрежрео) рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рез.реж.реж рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рджреЗрдирд╛ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╣реЛ рд╕рдХрддреА рд╣реИред
[реж.рен рдФрд░ рез.реж.реж-рдЖрд░рд╕реАрез.реж рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реБрдзрд╛рд░ рдХреЗ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛]ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдЦрдмрд░ рд╕реЗ рдЪреВрдХ рдЧрдП рдХрд┐ 1.0 рдЬрд╛рд░реА рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред

@StefanKarpinski рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╛рдж рдХрд┐рдпрд╛ред рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдмрдзрд╛рдИ, рдЬреВрд▓рд┐рдпрд╛ рдЕрджреНрднреБрдд рд╣реИ, рдЬрд╛рд░реА рд░рдЦреЗрдВ!

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

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

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

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

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

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

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