рдЬреВрд▓рд┐рдпрд╛: рдкреНрд░рдХрд╛рд░, рдмрд╣реБрдкрддреНрдиреА рдФрд░ рдмрд╣реБрдкрдж рдкрд░ рдЕрдВрдХрдЧрдгрд┐рдд

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

рдореВрд▓ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛


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

рдЕрдВрдХрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди


рдЕрдВрдХрдЧрдгрд┐рдд рд╣рд░ рдЬрдЧрд╣ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реА рд╣реИ: +, -, *, /, ^ рдкреНрд░рддрд┐рдкрд╛рджрдХ рдХреЗ рд▓рд┐рдП, рдЖрджрд┐ред
рддреБрд▓рдирд╛:>, <,> =, <=, ==; = = рдЖрджрд┐ред
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ: =
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ: / рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рднрд╛рдЬрди рд╣рдореЗрд╢рд╛ рдПрдХ рднрд┐рдиреНрдирд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИ; рдпрджрд┐ рдЖрдкрдХреЛ рджреЛ рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рднрд╛рдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдСрдкрд░реЗрд╢рди div(m, n) рдпрд╛ infix рд╕рдордХрдХреНрд╖ m ├╖ n ред m ├╖ n рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдкреНрд░рдХрд╛рд░


рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░:
  • рдЗрдВрдЯреЗрдЧрд░ ( Int ) - 2 , 3 , -42
  • UInt рдкреВрд░реНрдгрд╛рдВрдХ ( UInt ) - 0x12345
  • рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ ( Float32 , Float64 ) - 1.0 , 3.1415 , -Inf , -Inf
  • рдкрд░рд┐рдореЗрдп ( Rational ) - 3//3 , 7//2
  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ ( Real ) - рдЙрдкрд░реЛрдХреНрдд рд╕рднреА
  • рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ ( Complex ) - 3+4*im , 2//3+2//3*im , 3.0+0.0*im ( im рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЗрдХрд╛рдИ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд┐рдд рдХрд╛рд▓реНрдкрдирд┐рдХ рднрд╛рдЧ рдЬрдЯрд┐рд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)
  • Number - рдЙрдкрд░реЛрдХреНрдд рд╕рднреА


рддрд╛рд░ рдФрд░ рдкрд╛рддреНрд░:
  • 'a' - рдЪрд░рд┐рддреНрд░ ( Char )
  • "a" рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ ( String )


рдирд╛рдпрдм: рддрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдм рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред
рдирд╛рдпрдм: рддрд╛рд░ (рд╕рд╛рде рд╣реА рдЪрд░ рдирд╛рдо) рдЗрдореЛрдЬреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЗрдореЛрдЬреА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╕рд░рдгрд┐рдпреЛрдВ:
  • x = [1, 2, 3] - рддрддреНрд╡реЛрдВ рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рдЧрдгрдирд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд░рдгреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛
  • рд╡рд┐рд╢реЗрд╖ рд░рдЪрдирд╛рдХрд╛рд░: zeros(length) рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП zeros(length) , ones(length) рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП rand(length) , рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП rand(length) , рдЖрджрд┐ред
  • рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА рд╕рдорд░реНрдерди
  • рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд░реИрдЦрд┐рдХ рдмреАрдЬрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди (рд╕рд░рдгрд┐рдпреЛрдВ, рд╕реНрдХреЗрд▓рд░ рдЧреБрдгрди, рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╡реЗрдХреНрдЯрд░ рдЧреБрдгрд╛, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди


NB: рд╕рднреА рд╕рдВрдЧреНрд░рд╣ рдПрдХ рд╕реЗ рд╢реБрд░реВ рдЕрдиреБрдХреНрд░рдорд┐рдд рд╣реИрдВред
NB: рдХреНрдпреЛрдВрдХрд┐ рднрд╛рд╖рд╛ рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ, рд╕рд░рдгрд┐рдпрд╛рдБ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрдВ, рдЖрдкрдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рд▓реМрдЯрдирд╛ рд╣реЛрдЧрд╛ред

рдЯреБрдкрд▓реНрд╕ (рддрддреНрд╡реЛрдВ рдХрд╛ рд╕реЗрдЯ, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп):
  • (2, 5.3, "k") рдПрдХ рдирд┐рдпрдорд┐рдд рдЯрдкрд▓ рд╣реИ
  • (a = 3, b = 4) - рдЯрдкрд▓ рдирд╛рдо


рдирд╛рдпрдм: рдПрдХ рдирд╛рдорд┐рдд рдЯрдкрд▓ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдПрдХ рдЕрд╡рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдФрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд╛рдо рд╕реЗ рдкрд╣реБрдБрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
 julia> x = (a = 5, b = 12) (a = 5, b = 12) julia> x[1] 5 julia> sqrt(xa^2 + x[2]^2) 13.0 


рд╢рдмреНрджрдХреЛрд╢реЛрдВ:
 julia> x = Dict('a' => 5, 'b' => 12) Dict{Char,Int64} with 2 entries: 'a' => 5 'b' => 12 julia> x['c'] = 13 13 julia> x Dict{Char,Int64} with 3 entries: 'a' => 5 'c' => 13 'b' => 12 


рдмреБрдирд┐рдпрд╛рджреА рдирд┐рдпрдВрддреНрд░рдг рднрд╛рд╖рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг


1. рдЪрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░рдХрд╛рд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред
 julia> x = 7; x + 2 9 julia> x = 42.0; x * 4 168.0 

2. рд╕рд╢рд░реНрдд рдХреВрдж рдмреНрд▓реЙрдХ рдХреА рд╢реБрд░реБрдЖрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд╣реЛрддреА рд╣реИ if <condition> рдФрд░ end рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ else рдкреНрд░рдХрд╛рд╢ рдпрд╛ else рдкреНрд░рдХрд╛рд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
 if x > y println("X is more than Y") elseif x == y println("X and Y are equal") else println("X is less than Y") end 

3. рджреЛ рд▓реВрдк рдирд┐рд░реНрдорд╛рдг рд╣реИрдВ: while рдФрд░ рдХреЗ for ред рджреВрд╕рд░рд╛ рдХрд╛рдо рдЕрдЬрдЧрд░ рдХреА рддрд░рд╣, рдпрд╛рдиреА рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХ Iteratesред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдЙрди рдорд╛рдиреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рд╕реЗ рдЕрдзрд┐рдХ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрд┐рдирдХрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ start[:increment]:end ред рдкрд╛рдпрдерди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рд╕реАрдорд╛ рдореЗрдВ рд╢реБрд░реВ рдФрд░ рдЕрдВрдд рдореВрд▓реНрдп рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдЦрд╛рд▓реА рд╕реАрдорд╛ 1:1 рдирд╣реАрдВ рд╣реЛрдЧреА (рдпрд╣ 1 рдХреА рд╕реАрдорд╛ рд╣реИ), рд▓реЗрдХрд┐рди 1:0 ред рд▓реВрдк рдмреЙрдбреА рдХреЗ end рдХреЛ рд╢рдмреНрдж рдХреЗ end рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
 julia> for i in 1:3; print(i, " "); end #   1  3   1 ( ) 1 2 3 julia> for i in 1:2:3; print(i, " "); end #   1  3   2 1 3 

4. рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреАрд╡рд░реНрдб function рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП function , function рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рднреА рд╢рдмреНрдж рдХреЗ end рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдФрд░ рдирд╛рдорд┐рдд рддрд░реНрдХ рдХреЗ рд╕рд╛рде рддрд░реНрдХ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред
 function square(x) return x * x end function cube(x) x * square(x) #       ; return   end function root(x, degree = 2) #  degree     return x^(1.0/degree) end function greeting(name; times = 42, greet = "hello") #       println(times, " times ", greet, " to ", name) end julia> greeting("John") 42 times hello to John julia> greeting("Mike", greet = "wassup", times = 100500) #           100500 times wassup to Mike 


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

рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдорд▓реНрдЯреАрдкрд▓ рдбрд┐рд╕реНрдкреИрдЪ


рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреБрдЫ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рд╣реИрдВ:
 julia> sqrt sqrt (generic function with 19 methods) 

рдЬреИрд╕рд╛ рдХрд┐ REPL рд╣рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, sqrt 19 рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдп рд╣реИред рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд╛рд░реНрдп рдФрд░ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реАрдХреЗ?

рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрдИ sqrt рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рд╡рд┐рднрд┐рдиреНрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд░реНрдЧрдореВрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдХреНрдпрд╛ рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реИрдВ
 julia> methods(sqrt) 

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореИрдЯреНрд░рд┐рд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ "рдмрд╕ рдЖрдЧреЗ-рдЖрдЧреЗ рдХрд╛" рд╕рдВрдХрд▓рди рдирд╛рдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА рдкрд╣рд▓реЗ рдХреЙрд▓ рдкрд░ рджрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЙрд▓ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдФрд░ рдмрд╛рдж рдХреА рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
 julia> @time sqrt(8) #  @time -      0.006811 seconds (3.15 k allocations: 168.516 KiB) #   ,        2.8284271247461903 julia> @time sqrt(15) 0.000002 seconds (5 allocations: 176 bytes) # 5   -     @time 3.872983346207417 

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ

 sumk=1N sqrt(1)k


 function mysqrt(num) #    -     #   -           if num >= 0 return sqrt(num) else return sqrt(complex(num)) end end function S(n) #    sum = 0 sgn = -1 for k = 1:n sum += mysqrt(sgn) sgn = -sgn end return sum end function S_typed(n::Integer) # ..     ,      #     sum::Complex = 0.0 sgn::Int = -1 for k = 1:n sum += mysqrt(sgn) sgn = -sgn end return sum end 

рдмреЗрдВрдЪрдорд╛рд░реНрдХ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ S_typed() рдлрд╝рдВрдХреНрд╢рди рди рдХреЗрд╡рд▓ рддреЗрдЬреА рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ S() рд╡рд┐рдкрд░реАрдд рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ mysqrt() рд╕реЗ mysqrt() рдЧрдП mysqrt() рдХрд╛ рдкреНрд░рдХрд╛рд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рджрд╛рдИрдВ рдУрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рддрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
 sum = sum + mysqrt(sgn) 

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

рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, S_typed() рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдЯрд╛рдЗрдк Complex , рд▓реЗрдХрд┐рди S() рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╡реИрд▓реНрдпреВ S() рдкреНрд░рдХрд╛рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрдЧрд╛ рдЬрд╣рд╛рдВ S() рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдХрд▓рдХ @code_warntype рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рд▓реМрдЯреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реИ:
 julia> @code_warntype S(3) Body::Any #     ,      ... julia> @code_warntype S_typed(3) Body::Complex{Float64} #      ... 

рдпрджрд┐ рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓реВрдк рдореЗрдВ рдХрд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП @code_warntype рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рд╢рд░реАрд░ рдореЗрдВ рдХрд╣реАрдВ Any рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рдХреА рд░рд╕реАрдж рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрди рдХреЙрд▓реЛрдВ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╡реГрджреНрдзрд┐ рдХреЛ рдмрдврд╝рд╛рдПрдЧрд╛ред

рдпреМрдЧрд┐рдХ рдкреНрд░рдХрд╛рд░


рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ struct рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЧреНрд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
 julia> struct GenericStruct #   struct    name b::Int c::Char v::Vector end #       #       ,        julia> s = GenericStruct("Name", 1, 'z', [3., 0]) GenericStruct("Name", 1, 'z', [3.0, 0.0]) julia> s.name, sb, sc, sv ("Name", 1, 'z', [3.0, 0.0]) 

рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдХрд░, рдХреНрд╖реЗрддреНрд░ рдорд╛рдиреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рдЕрдм рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЖрдк рд╕реНрдореГрддрд┐ рдореЗрдВ рдлрд╝реАрд▓реНрдб рдХреЗ рдкрддреЗ рдХреЛ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдлрд╝реАрд▓реНрдб рдХреЗ рддрддреНрд╡, рдЬреИрд╕реЗ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ " sv рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ")ред mutable struct рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ mutable struct рдирд┐рд░реНрдорд╛рдг рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рд╡рд╛рдХреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдирд┐рдпрдорд┐рдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИред

"рд╢рд╛рд╕реНрддреНрд░реАрдп" рдЕрд░реНрдереЛрдВ рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд┐рд╢реНрд░рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реБрдкрд░рдкреЗрдкреНрд╕ рдореЗрдВ рдорд┐рд▓рд╛рдХрд░ "рд╡рд┐рд░рд╛рд╕рдд" рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЬреВрд▓рд┐рдпрд╛ рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ред рдЯрд╛рдЗрдк рд░рд┐рд╢реНрддреЛрдВ рдХреЛ A<:B рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдП A<:B рдХрд╛ рдПрдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реИ) рдФрд░ A>:B (рдП A>:B рдХрд╛ рдПрдХ рдЙрдкрдкреНрд░рдХрд╛рд░ рд╣реИ)ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 abstract type NDimPoint end #   -     # ,    -     N  struct PointScalar<:NDimPoint x1::Real end struct Point2D<:NDimPoint x1::Real x2::Real end struct Point3D<:NDimPoint x1::Real x2::Real x3::Real end #     ;   Markdown """ mag(p::NDimPoint) Calculate the magnitude of the radius vector of an N-dimensional point `p` """ function mag(p::NDimPoint) sqrmag = 0.0 # ..   ,       #     T   fieldnames(T) for name in fieldnames(typeof(p)) sqrmag += getfield(p, name)^2 end return sqrt(sqrmag) end """ add(p1::T, p2::T) where T<:NDimPoint Calculate the sum of the radius vectors of two N-dimensional points `p1` and `p2` """ function add(p1::T, p2::T) where T<:NDimPoint #  -  , ..       #     list comprehension sumvector = [Float64(getfield(p1, name) + getfield(p1, name)) for name in fieldnames(T)] #     ,    #  ...      , .. # f([1, 2, 3]...) -   ,  f(1, 2, 3) return T(sumvector...) end 

рдХреЗрд╕ рд╕реНрдЯрдбреА: рдмрд╣реБрдкрдж


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

рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдХреЗрддрди рдореЗрдВ рдПрдХ рдмрд╣реБрдкрдж рдХреЛ рд╕рдВрдЪрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рд░рдгреА рдпрд╛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреБрдгрд╛рдВрдХреЛрдВ рдХреЗ рдЯреНрдпреВрдкрд▓ рд╡рд╛рд▓реЗ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдЙрдкрдпреБрдХреНрдд рд╣реИред рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдореЛрдЯрд░рд╕рд╛рдЗрдХрд┐рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ, рдмрд╣реБрдкрдж рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдмрд╣реБрдкрдж рдХреЗ рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
 abstract type AbstractPolynomial end """ Polynomial <: AbstractPolynomial Polynomials written in the canonical form """ struct Polynomial<:AbstractPolynomial degree::Int coeff::NTuple{N, Float64} where N # NTuple{N, Type} -    N    end """ evpoly(p::Polynomial, z::Real) Evaluate polynomial `p` at `z` using the Horner's rule """ function evpoly(p::Polynomial, z::Real) ans = p.coeff[end] for idx = p.degree:-1:1 ans = p.coeff[idx] + z * ans end return ans end 


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

P(x)= sumk=0Ncknk(x),


рдЬрд╣рд╛рдБ n k ( x ) рдореВрд▓ рдмрд╣реБрдкрдж рд╣реИрдВ, n 0 ( x ) рдФрд░ k > 0 рдХреЗ рд▓рд┐рдП

nk(x)= prodi=0kтИТ1(xтИТxi),


рдЬрд╣рд╛рдБ x рдореИрдВ рдкреНрд░рдХреНрд╖реЗрдк рдиреЛрдбреНрд╕ рд╣реИрдВ

рдЙрдкрд░реЛрдХреНрдд рд╕реВрддреНрд░реЛрдВ рд╕реЗ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рднрдВрдбрд╛рд░рдг рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдХреНрд╖реЗрдк рдиреЛрдбреНрд╕ x i рдФрд░ рдЧреБрдгрд╛рдВрдХ c i рдХреЗ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЧрдгрдирд╛ рд╣реЙрд░реНрдирд░ рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред
 """ InterpPolynomial <: AbstractPolynomial Interpolation polynomials in Newton's form """ struct InterpPolynomial<:AbstractPolynomial degree::Int xval::NTuple{N, Float64} where N coeff::NTuple{N, Float64} where N end """ evpoly(p::Polynomial, z::Real) Evaluate polynomial `p` at `z` using the Horner's rule """ function evpoly(p::InterpPolynomial, z::Real) ans = p.coeff[p.degree+1] for idx = p.degree:-1:1 ans = ans * (z - p.xval[idx]) + p.coeff[idx] end return ans end 

рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдкрдж рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдПрдХ рд╣реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - evpoly() - рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЧрдгрдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЬреНрдЮрд╛рдд рдбреЗрдЯрд╛ рд╕реЗ рдПрдХ рдмрд╣реБрдкрдж рдмрдирд╛рддрд╛ рд╣реИред

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

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

рд╣рдо рд╕рд╛рдзрд╛рд░рдг рдмрд╣реБрдкрдж рдХрд╛ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдЖрдпрд╛рдореА рд╕рд░рдгреА рдпрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддрд╛ рд╣реИред рдкреНрд░рдХреНрд╖реЗрдк рдмрд╣реБрдкрдж рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рдХреНрд╖реЗрдк рдкреНрд░рдХреНрд╖реЗрдк рдФрд░ рдЙрдирдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧреБрдгрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрд┐рдд рдорддрднреЗрджреЛрдВ рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
 """ Polynomial <: AbstractPolynomial Polynomials written in the canonical form --- Polynomial(v::T) where T<:Union{Vector{<:Real}, NTuple{<:Any, <:Real}}) Construct a `Polynomial` from the list of the coefficients. The coefficients are assumed to go from power 0 in the ascending order. If an empty collection is provided, the constructor returns a zero polynomial. """ struct Polynomial<:AbstractPolynomial degree::Int coeff::NTuple{N, Float64} where N function Polynomial(v::T where T<:Union{Vector{<:Real}, NTuple{<:Any, <:Real}}) #     /     P(x) тЙб 0 coeff = isempty(v) ? (0.0,) : tuple([Float64(x) for x in v]...) #   -   new #  -    return new(length(coeff)-1, coeff) end end """ InterpPolynomial <: AbstractPolynomial Interpolation polynomials in Newton's form --- InterpPolynomial(xsample::Vector{<:Real}, fsample::Vector{<:Real}) Construct an `InterpPolynomial` from a vector of points `xsample` and corresponding function values `fsample`. All values in `xsample` must be distinct. """ struct InterpPolynomial<:AbstractPolynomial degree::Int xval::NTuple{N, Float64} where N coeff::NTuple{N, Float64} where N function InterpPolynomial(xsample::X, fsample::F) where {X<:Union{Vector{<:Real}, NTuple{<:Any, <:Real}}, F<:Union{Vector{<:Real}, NTuple{<:Any, <:Real}}} #   ,    ,   f  ,   if !allunique(xsample) throw(DomainError("Cannot interpolate with duplicate X points")) end N = length(xsample) if length(fsample) != N throw(DomainError("Lengths of X and F are not the same")) end coeff = [Float64(f) for f in fsample] #     (Stoer, Bulirsch, Introduction to Numerical Analysis, . 2.1.3) for i = 2:N for j = 1:(i-1) coeff[i] = (coeff[j] - coeff[i]) / (xsample[j] - xsample[i]) end end new(N-1, tuple([Float64(x) for x in xsample]...), tuple(coeff...)) end end 

рдмрд╣реБрдкрдж рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреАрдврд╝реА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдХреЗ рд╕рд╛рде рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

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

рдПрдХрдорд╛рддреНрд░ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб Main рдореЙрдбреНрдпреВрд▓ (рдирд╛рдо рд╕реНрдерд╛рди) рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХрд╛рд░реНрдп Base рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЬрдм рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рд╣реЛ, рддреЛ рдЖрдкрдХреЛ рдпрд╛ рддреЛ Base рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдкрдж рдХрд╛ рдЬреЛрдбрд╝ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
 # -   Base.+  , #    Base.:+,   " :+   Base" function Base.:+(p::Polynomial, x::Real) Polynomial(tuple(p.coeff[1] + x, p.coeff[2:end]...)) end function Base.:+(p::InterpPolynomial, x::Real) # ..           - #          . #       - #        fval::Vector{Float64} = [evpoly(p, xval) + x for xval in p.xval] InterpPolynomial(p.xval, fval) end #       function Base.:+(x::Real, p::AbstractPolynomial) return p + x end 

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

 function Base.:+(p1::Polynomial, p2::Polynomial) #    ,      deg = max(p1.degree, p2.degree) coeff = zeros(deg+1) coeff[1:p1.degree+1] .+= p1.coeff coeff[1:p2.degree+1] .+= p2.coeff Polynomial(coeff) end function Base.:+(p1::InterpPolynomial, p2::InterpPolynomial) xmax = max(p1.xval..., p2.xval...) xmin = min(p1.xval..., p2.xval...) deg = max(p1.degree, p2.degree) #         #       xmid = 0.5 * xmax + 0.5 * xmin dx = 0.5 * (xmax - xmin) / cos(0.5 * ╧А / (deg + 1)) chebgrid = [xmid + dx * cos((k - 0.5) * ╧А / (deg + 1)) for k = 1:deg+1] fsample = [evpoly(p1, x) + evpoly(p2, x) for x in chebgrid] InterpPolynomial(chebgrid, fsample) end function Base.:+(p1::InterpPolynomial, p2::Polynomial) xmax = max(p1.xval...) xmin = min(p1.xval...) deg = max(p1.degree, p2.degree) xmid = 0.5 * xmax + 0.5 * xmin dx = 0.5 * (xmax - xmin) / cos(0.5 * ╧А / (deg + 1)) chebgrid = [xmid + dx * cos((k - 0.5) * ╧А / (deg + 1)) for k = 1:deg+1] fsample = [evpoly(p1, x) + evpoly(p2, x) for x in chebgrid] InterpPolynomial(chebgrid, fsample) end function Base.:+(p1::Polynomial, p2::InterpPolynomial) p2 + p1 end 

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

рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдореИрдВ рдЕрдиреНрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд░реАрдХреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдЧреЗ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рддреИрдпрд╛рд░реА рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
  1. рдЬреВрд▓рд┐рдпрд╛ рднрд╛рд╖рд╛ рдкреНрд░рд▓реЗрдЦрди: docs.julialang.org
  2. рдЬреВрд▓рд┐рдпрд╛ рднрд╛рд╖рд╛ рдЪрд░реНрдЪрд╛ рдордВрдЪ: рдкреНрд░рд╡рдЪрдиред Julialang.org
  3. рдЬреЗред рд╕реНрдЯреЛрдПрд░, рдбрдмреНрд▓реНрдпреВред рдмреБрд▓рд┐рд░рд╕реНрдЪред рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд╛ рдкрд░рд┐рдЪрдп
  4. рдЬреВрд▓рд┐рдпрд╛ рд╣рдм: habr.com/en/hub/julia
  5. рдЬреВрд▓рд┐рдпрд╛ рд╕реЛрдЪреЗрдВ: benlauwens.imtqy.com/ThinkJulia.jl/latest/.html

Source: https://habr.com/ru/post/hi450628/


All Articles