Julia.  .  
 


    Julia    .        .       ?   ?  . .               ,             .      ,          .    ,     .          Julia,      .          .           .        .





 

Julia.  .  





 



 ,    ,       Julia     (Windows, macOS, Linux, FreeBSD),     https://julialang.org/downloads/ (https://julialang.org/downloads/).   Linux  Julia  Juliaup    ,  ,     .



      Julia 1.10.0,      Julia. ,   ,          . , ,        Julia      ,    .



       Julia       ,      Julia   julia   :












   ,   exit()    CTRL + D.




  Julia


  Julia  REPL ( . read-eval-print loop       䓻),      ,     julia.        JIT- (. Just-in-Time,     )      ,        ,    ,    ,       . REPL    .




 


    ,        julia>.       Julia     .   Return  Enter        . :



julia> 2 + 2

4

julia> 5 * (5  1)

20

julia> 5/2

2.5

         :

julia> 5/"A"

ERROR: MethodError: no method matching /(::Int64, ::String)




 


Julia    ,           .       .

     Julia  ? ( )     .     :



help?>



Julia         ,      .       , Julia    .      ,          :



? 



?  



?  



?      



?     



?   ( ,    )



         CTRL-C   BACKSPACE   .



   Julia       https://docs.julialang.org/en/v1/ (https://docs.julialang.org/en/v1/) :



[JULIA_INSTALL_FOLDER]/share/doc/julia/html/en ( JULIA_INSTALL_FOLDER  ,   Julia)



         .




 


  Julia   ,       Julia  ,     ,      (  Base),    ,   .    ,    ,   ,        ..    ,  ,     ,     ,   Julia  .      Pkg     Julia,     : ,    .       ]   .     :



(@v1.10) pkg>



         CTRL-C   BACKSPACE   .




 


          .    ; (  )     .     :



shell>



         CTRL-C   BACKSPACE   .



  Windows   Julia     windows ,      PowerShell  cmd.exe.



? PowerShell:



shell> powershell

Windows PowerShell

Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\julia>



? cmd.exe:



shell> cmd

Microsoft Windows [version 10.0.17763.973]

(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\julia>




  


         ,     .       ,  CTRL-R.    (reverse-i-search)`':.          `'.   ,  ,          .         ,   CTRL-R  .



   CTRL-R     , CTRL-S     ,   (forward-i-search)`':.                   .



    REPL   ~/.julia/logs/repl_history.jl    ,    ,    REPL,    .      ,   ,    .




 Julia


           -  REPL   ,       .  Julia            .jl.             :



msg="Hello, World!"

println(msg)



   example.jl  ,   Julia (   ,         ).  julia.     julia  ,  ,     :



julia> include("example.jl")

Hello, World!



    Julia         .       Julia (    ,         ),  julia example.jl   Enter      :



[vadim@void-linux julia-1.10.0]$ julia example.jl

Hello, World!

[vadim@void-linux julia-1.10.0]$



:      msg     ,     println()        .



    (   )   (  )   Julia,       Julia,       ,     .     :



?   Julia: [JULIA_INSTALL_FOLDER]\etc\julia\startup.jl ( JULIA_INSTALL_FOLDER  ,   Julia)



?   Julia: [USER_HOME_FOLDER]\.julia\config\startup.jl ( USER_HOME_FOLDER     ,  %HOMEPATH%  Windows  ~  Linux)



 ,       .             .




 


          .    ,           .        ,   ,  ,        Julia.




Visual Studio Code


Visual Studio Code ( VS Code)       .    :



?      .



?     .



?     Git.



?    .












  : https://www.julia-vscode.org (https://www.julia-vscode.org)




Jupyter


JupyterLab  Jupyter Notebook        Julia      .  ,         .    Jupyter:



?         , Dropbox, GitHub  Jupyter Notebook Viewer.



?       : HTML, , , LaTeX    MIME.



?  











Pluto.jl


Pluto    ,        Julia.  Pluto      Julia (),      .    , Pluto   ,    .                  .    Pluto:



?        Pluto     .



? Pluto   Julia    .



?   .













  Julia



Julia      ,     .  Julia      ,   ,    ,    ,  ,    ,        .



       ,    ,        .         9000  .  ,   ,       Julia,         .




  


        ,      API    Julia:



? 1.    ]   REPL,      pkg.    julia>  (vX.Y) pkg>,  vX.Y     Julia.                   CTRL-C   BACKSPACE   .



? 2. API   ,    Pkg    (using Pkg),     Pkg.<  >(< >). ,       API    ,           ,       .



 ,      100 % ,   API   .



     :



? status:   (  )   .



? update:           .



? add < >:      .     add <  1> <  2>.



? add < >#master, add < >#branchName  add < >#vX.Y.Z:     ,      .



? free < >:     .



? rm < >:        ,       .



? add https://github.com/< >/< >.jl:     URL- (  GitHub).




 


       ,     using  import.      :



?         .    using < >  REPL      .



?      ,      ,         ,     < >.< >.           (       ).



,      now()   Dates (   ),    :



?         using < > :



julia> using Dates

julia> now()

2023-05-13T20:23:03.187



?     ,    ,   import < >:



julia> import Dates

julia> Dates.now()

2023-05-13T20:43:04.801



?         import < >:< > :



julia> import Dates:now

julia> now()

2023-05-13T20:46:53.542



,           Julia,   :



include("<  >< >.jl")



   ,     (  ),           ( ,    )   ,    .




 


         ?  help  :



(@v1.10) pkg> help



         ? < > , :



(@v1.10) pkg> ?add



    ,     https://pkgdocs.julialang.org (https://pkgdocs.julialang.org)



            https://julialang.org/packages/ (https://julialang.org/packages/)








  Julia   ,   .  ,      (, ,   )   . :



?   100  x

julia> x = 100

100



?      x



julia> x * 5

500



?   x



julia> x = 10 + 10

20



?      , ,  



julia> x = "Hello World!"

"Hello World!"



 " = "     ,    ,     Julia  ,    .  ,     (        1 = 2 = )     ,   ,      REPL    . ,   4  b = 2+2       :



julia> a = (b = 2 + 2) * 5

20



julia> a

20



julia> b

4



     Julia            .    a = 2,   a = 3,     a,       3.     2,  2+2 -  4,   6!           ,   ,     :



julia> a=[1,2,3]

3-element Vector{Int64}:

1

2

3



julia> b=a

3-element Vector{Int64}:

1

2

3



  b = a     a,     b    : a b ""    [1,2,3]  .

    :



julia> a[1] = 42

42



 a[i] = value   ,       a  b:



julia> a

3-element Vector{Int64}:

42

2

3



julia> b

3-element Vector{Int64}:

42

2

3



 a     :



julia> a= 3.14159

3.14159



 a = 3.14159   ,    a   ,  -   b:



julia> b

3-element Vector{Int64}:

42

2

3



   Julia    ,         Unicode,      .        ,   ('_')         .     .

         : baremodule, begin, break, catch, const, continue, do, else, elseif, end, export, false, finally, for, function, global, if, import, let, local, macro, module, quote, return, struct, true, try, using, while.

    :



julia> 1 = 100

100



julia> 1x=100

ERROR: syntax: "1" is not a valid function argument name around REPL[2]:1



julia> ?=""

""



julia> text@ = " "

ERROR: syntax: extra token "@" after end of expression




 


  Julia         ,    ,   ,       .

    .   typeof()   ,  sqrt()     :



julia> x=-2.0

2.0



julia> typeof(x)

Float64



julia> sqrt(x)

ERROR: DomainError with -2.0:

sqrt will only return a complex result if called with a complex argument. Try sqrt(Complex(x)).



 : Julia     ,  Float64,   ,       ,   ,    .        :



julia> x=-2.0+0im

2.0 + 0.0im



julia> typeof(x)

ComplexF64 (alias for Complex{Float64})



julia> sqrt(x)

0.0 + 1.4142135623730951im



   Julia         Complex{Float64},         .

    .    .     ,   ,      " ",    " ,    ".



Julia          ,  .   ,  :   (Int),     (Float)   (Char).   ,    ,  :   (Array),  (Dict),  (Set)  . .         ,  Int64  Bool.          ,       .          .   Array{Int64,2}       64-   .   Julia    .



 ::            , :



julia> (2+2)::Int

4



julia> (2+2)::AbstractFloat

ERROR: TypeError: in typeassert, expected AbstractFloat, got a value of type Int64



julia> (2.0+2.0)::AbstractFloat

4.0



   ,  ,  ::   " ".      ,  ,        .    ,           .   ,  ,      ,     .      ,  ,      .



  ,       :



julia> x::Complex{Float64}=-2

2



julia> typeof(x)

ComplexF64 (alias for Complex{Float64})



julia> sqrt(x)

0.0 + 1.4142135623730951im



  ::       ,    :       ,       ,   C.  ,  ,         convert(),   .




 



    Julia:












      :



julia> 10

10



julia> 0123456789

123456789



          (64-):



julia> typeof(10)

Int64



julia> typeof(0123456789)

Int64



Julia    Int  UInt,            :



julia> Int

Int64



julia> UInt

UInt64



  ,        64 ,      128 ,   128-  ,    :



julia> typeof(10000000000000000000)

Int128




  


         0x    0  9,      a  f,     ,    A-F  .        :



julia> x = 0x1

0x01



julia> typeof(x)

UInt8



julia> x = 0x123

0x0123



julia> typeof(x)

UInt16



julia> x = 0x1234567

0x01234567



julia> typeof(x)

UInt32



julia> x = 0x123456789abcdef

0x0123456789abcdef



julia> typeof(x)

UInt64



julia> x = 0x11112222333344445555666677778888

0x11112222333344445555666677778888



julia> typeof(x)

UInt128



,     Int128, UInt128,      BigInt:



julia> typeof(100000000000000000000000000000000000000)

Int128



julia> typeof(1000000000000000000000000000000000000000)

BigInt



julia> typeof(0xffffffffffffffffffffffffffffffff)

UInt128



julia> typeof(0xfffffffffffffffffffffffffffffffff)

BigInt



   ,     ,        .




  


 Julia          .  ( typemax(), typemin(),        , ==  ):



julia> x = typemax(Int64)

9223372036854775807



julia> x+1

9223372036854775808



julia> x + 1 == typemin(Int64)

true



julia> x = typemax(UInt64)

0xffffffffffffffff



julia> x+1

0x0000000000000000



julia> x + 1 == typemin(UInt64)

true



  ,   ,      .      BigInt   .              BigInt():



julia> 10^19

8446744073709551616



julia> BigInt(10)^19

10000000000000000000




   



      Julia:












        :



julia> 1.0

1.0



julia> 1.

1.0



julia> 0.5

0.5



julia> .5

0.5



julia> -1.23

1.23



    E-:



julia> 1e10

1.0e10



julia> 2.5e-4

0.00025



       Float64 (  ).        Float32,    f  e  :



julia> x = 0.5f0

0.5f0



julia> typeof(x)

Float32



julia> 2.5f-4

0.00025f0



   Float16:



julia> Float16(4.)

Float16(4.0)



julia> 2*Float16(4.)

Float16(8.0)




   


            .    ,     ,       bitstring(),       :



julia> 0.0 == -0.0

true



julia> bitstring(0.0)

"0000000000000000000000000000000000000000000000000000000000000000"



julia> bitstring(-0.0)

"1000000000000000000000000000000000000000000000000000000000000000"



    Float64 ,     BigFloat:



julia> 2.0^100/4

3.1691265005705735e29



julia> BigFloat(2.0)^100/4

3.16912650057057350374175801344e+29



BigFloat     ,     ,      .



        :



julia> (typemin(Float16),typemax(Float16))

(-Inf16, Inf16)



julia> (typemin(Float32),typemax(Float32))

(-Inf32, Inf32)



julia> (typemin(Float64),typemax(Float64))

(-Inf, Inf)



        .            :



julia> 4.2^1000

Inf



julia> -4.2^1000

Inf




 


       ,          :












  IEEE 754,          :



julia> 1/0

Inf



julia> -5/0

Inf



julia> 0.000001/0

Inf



julia> 0/0

NaN



julia> 1/Inf

0.0



julia> 1/-Inf

0.0



julia> -1/Inf

0.0



julia> -1/-Inf

0.0



julia> 500 + Inf

Inf



julia> 500  Inf

Inf



julia> Inf + Inf

Inf



julia> -Inf -Inf

Inf



julia> Inf  Inf

NaN



julia> Inf * Inf

Inf



julia> Inf*-Inf

Inf



julia> -Inf * -Inf

Inf



julia> Inf / Inf

NaN



julia> Inf /-Inf

NaN



julia> -Inf /Inf

NaN



julia> -Inf /-Inf

NaN



julia> 0 * Inf

NaN



julia> 0 *-Inf

NaN




 NaN


NaN  ,      -,   :



julia> NaN == NaN

false



julia> NaN != NaN

true



julia> NaN < NaN

false



julia> NaN > NaN

false



   ,     :



julia> [1 NaN] == [1 NaN]

false



 Julia     :












 isequal()  NaNs   :

julia> isequal(NaN, NaN)

true



julia> isequal([1 NaN], [1 NaN])

true



julia> isequal(NaN, NaN32)

true



 isequal()       :

julia> -0.0 == 0.0

true



julia> isequal(-0.0, 0.0)

false




 


           ,               ,     .



 eps()  Julia    1.0       ,          :

julia> eps(Float16)

Float16(0.000977)



julia> eps(Float32)

1.1920929f-7



julia> eps(Float64)

2.220446049250313e-16



julia> eps(BigFloat)

1.727233711018888925077270372560079914223200072887256277004740694033718360632485e-77



 eps          ,              .  , eps(x)     ,   x, ,  x + eps(x)       , ,  x.      :

julia> eps(1.0)

2.220446049250313e-16



julia> eps(1000.)

1.1368683772161603e-13



julia> eps(1e-27)

1.793662034335766e-43



julia> eps(0.0)

5.0e-324



           ,          .  ,                        .  , eps(1.0)     ,  eps(Float64),  1.0   64-    .



        ,       .   Julia   ,  RoundNearest.      ,        .




  Julia



        :












      :



julia> 1+10-5

6



julia> 2-6

4



julia> 5*20/10

10.0



julia> 20\10

0.5



julia> 3^3 27



julia> 5.5%-2

1.5



,       , , 2x  2(x+y),   .




 


  Bool    :












   :



julia> !true

false



julia> !false

true



julia> true && true

true



julia> true && false

false



julia> false && false

false



julia> true || true

true



julia> true || false

true



julia> false || false

false




 


        :












julia> ~100

101



julia> 121 & 232

104



julia> 121 | 232

249



julia> 121 ? 232 # 

145



julia> xor(121, 232)

145



julia> ~UInt32(121)

0xffffff86



julia> ~UInt8(121)

0x86




 


       ,   ,    (=)   .          .

      :












   :



julia> x = 25

25



julia> x += 25

50



julia> x

50



      .      :



julia> x = 0x01

0x01



julia> typeof(x)

UInt8



julia> x *= 2

2



julia> typeof(x)

Int64




  


      "" ,        (  ..).

   :



julia> [2, 4 ,6].^2

3-element Vector{Int64}:

4

16

36



julia> x=[1 2 3 4 5 ; 67 8 9 10]

2?5 Matrix{Int64}:

1 2 3 4 5

6 7 8 9 10



julia> x.+1

2?5 Matrix{Int64}:

2 3 4 5 6

7 8 9 10 11



julia> x

2?5 Matrix{Int64}:

1 2 3 4 5

6 7 8 9 10



julia> x .+=1

2?5 Matrix{Int64}:

2 3 4 5 6

7 8 9 10 11



julia> x

2?5 Matrix{Int64}:

2 3 4 5 6

7 8 9 10 11



 , ""     ,    ,  .




  .


   .

   ,     (https://www.litres.ru/book/vadim-nikitin-32700223/julia-yazyk-programmirovaniya-bystryy-start-69596290/chitat-onlayn/)  .

      Visa, MasterCard, Maestro,    ,   ,     ,  PayPal, WebMoney, ., QIWI ,       .


