рдЫреЛрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд░рд▓рд╛рдВрдЧред рдЕрдзреНрдпрд╛рдп 1: рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рдЪрд░, рд╕реВрдЪрд┐рдпрд╛рдБ рдФрд░ рдЯреБрдкрд▓реНрд╕


рд╢реБрдн рджреЛрдкрд╣рд░, рдкреНрд░рд┐рдп рдлреЗрд░реАрд╡рд╛рд▓реЗред

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



рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдПрд░реНрд▓рд╛рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
$ sudo apt-get install erlang $ erl 

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

рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рд╕рдВрдЦреНрдпрд╛


рдПрд░рд▓реИрдВрдЧ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЪрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛ред рдЖрдк рд╕рдВрдЦреНрдпрд╛рдУрдВ, рдШрдЯрд╛рд╡, рдЧреБрдгрд╛ рдФрд░ рднрд╛рдЧ рдЬреИрд╕реЗ рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
  1> 7 + 3. 10 2> 12 - 4. 8 3> 5 * 2. 10 4> 12 / 6 2.0 5> 7 div 3. 2 6> 7 rem 3. 1 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд┐рднрд╛рдЬрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмрд┐рдВрджреБ рд╕рдВрдЦреНрдпрд╛ рдерд╛ред Erlang рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЪрд░ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реИред

рдПрд░реНрд▓реИрдВрдЧ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдорд╛рдирдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ 2 + 3 * 4. рдХрд╛ рдкрд░рд┐рдгрд╛рдо 14 рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЧреБрдгрди рдореЗрдВ рдЬреЛрдбрд╝ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИред рдЧрдгрдирд╛ рдХреЗ рдХреНрд░рдо рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
  1> (2 + 3) * 4. 20 2> -(10 + 3). -13 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдХреЗрд╡рд▓ рджрд╢рдорд▓рд╡ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реИрдВред рдЖрдк 2 рд╕реЗ 36 рддрдХ рдХрд┐рд╕реА рднреА рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛ рдХреЛ Base#Value рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  1> 2#11011. 27 2> 10#1198. 1198 3> 16#A04F. 41295 4> 36#1TA. 2350 

рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИред Erlang рдореЗрдВ, рдЖрдк рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЖрдзрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
  1> 2#11011 + 36#1TA. 2377 2> 10#1198 - 16#A04F. -39841 3> 3#201 * 4#321. 1083 


рдкрд░рдорд╛рдгреБрдУрдВ


рдкрд░рдорд╛рдгреБ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдирд╛рдорд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИрдВ, рдФрд░ рдПрдХ рдкрд░рдорд╛рдгреБ рдХрд╛ рдореВрд▓реНрдп рдЗрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдПрдХ рдкрд░рдорд╛рдгреБ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд░рдорд╛рдгреБрдУрдВ рдХреЛ рдПрдХ рд▓реЛрдЕрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕рдореЗрдВ рд▓реЛрдЕрд░рдХреЗрд╕ рдФрд░ рдЕрдкрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░, рд╕рдВрдЦреНрдпрд╛рдПрдБ, рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ ( _ ) рдФрд░ рдПрдХ рдХреБрддреНрддрд╛ ( @ ) рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкрд░рдорд╛рдгреБ рдПрдХрд▓ рдЙрджреНрдзрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕рдореЗрдВ рдХрд┐рд╕реА рднреА рд╡рд░реНрдг рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рдорд╛рдгреБ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд░рдорд╛рдгреБ рдирд╛рдо рдХреЗ after and andalso band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse query receive rem try when xor рдирд╣реАрдВ after and andalso band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse query receive rem try when xor рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ after and andalso band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse query receive rem try when xor ред
  1> atom. atom 2> otherAtom. otherAtom 3> atom_with_underscore. atom_with_underscore 4> one@more@atom. one@more@atom 5> 'Atom with whitespace'. 'Atom with whitespace' 6> ' Atom with special charactes #^&?'. ' Atom with special charactes #^&?' 7> Atom. * 1: variable 'Atom' is unbound 8> after. * 1: syntax error before: 'after' 


рддрд╛рд░реНрдХрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░


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

рднрд╛рд╖рд╛ "рдФрд░" ( and ), "рдпрд╛" ( or ), "рдЕрдирдиреНрдп рдпрд╛" ( xor ) рдФрд░ "рдирд┐рд╖реЗрдз" ( not ) рдЬреИрд╕реЗ рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рддрд╛рд░реНрдХрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИред
  1> true or false. true 2> true and false. false 3> true xor false. true 4> not false. true 5> (not (true xor true)) or (false and true). true 

рдФрд░ or рдСрдкрд░реЗрдЯрд░ рд╣рдореЗрд╢рд╛ рд╕реНрд╡рдпрдВ рдХреЗ рджреЛрдиреЛрдВ рдУрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп (1 > 2) or (3 < 4). рджреЛрдиреЛрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдореВрд▓реНрдп рдорд┐рд▓реЗрдВрдЧреЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рдЧрдгрдирд╛ рдХреЗ рдмрд╛рдж, рдкрд░рд┐рдгрд╛рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдЮрд╛рдд рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, andalso рдФрд░ orelse рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдСрдкрд░реЗрдЯрд░ "рдмрд░рд╛рдмрд░" ( == ), "рдХреНрд░рдорд╢рдГ рдмрд░рд╛рдмрд░" ( =:= ), "рдХреНрд░рдорд╢рдГ рдЕрд╕рдорд╛рди" ( =/= ), "рдЕрд╕рдорд╛рди" ( /= ), "рдХрдо" ( < ) рд╣реИрдВред ( =< ) рд╕реЗ рдХрдо рдпрд╛ рдЕрдзрд┐рдХ ( > ) рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ ( >= ) рдХреЗ рдмрд░рд╛рдмрд░ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХред
  1> 2 == 2.0. true 2> 2 =:= 2.0. false 3> 3 /= 3.0. false 4> 3 =/= 3.0. true 5> 5 > 5. false 6> 5 =< 5. true 

рдпрджрд┐ рдЖрдк рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд░рддреЗ рдереЗ, рддреЛ рдЖрдк рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдореЗрдВ true 1 рд╣реИ рдФрд░ false 0 ред рдПрд░реНрд▓реИрдВрдЧ рдореЗрдВ, рдпрд╣ рдирд┐рдпрдо рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ:
  1> true == 1. false 2> false == 0. false 3> false > 19. %% !!! true 

рдХреНрдпрд╛ рдЖрдкрдиреЗ рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ? рдЕрдЬреАрдм рд╣реИ, рд╣реИ рдирд╛? рдФрд░ рдкреВрд░рд╛ рдмрд┐рдВрджреБ рдпрд╣ рд╣реИ рдХрд┐ рдПрд░реНрд▓реИрдВрдЧ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: (number) < (atom) < (reference) < (fun) < (port) < (pid) < (tuple) < (list) < (bit string) рд╣рдордиреЗ рдХрд╣рд╛ рдХрд┐ true рдФрд░ false рдкрд░рдорд╛рдгреБ рд╣реИрдВ, рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдкрд░рдорд╛рдгреБ рд╕рдВрдЦреНрдпрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ "рдЕрдзрд┐рдХ" рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ false > 19. редред

рдЪрд░


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

рдЪрд░ рдирд╛рдо рдХреЛ рдЕрдкрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░ рдпрд╛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ ( _ ) рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдЪрд░ рдирд╛рдо рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рдХреЛ рдореВрд▓реНрдп рдпрд╛рдж рдирд╣реАрдВ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред
  1> Variable = 10 - 7. 3 2> OtherVariable = 3 * 4. 12 3> _result = Variable + OtherVariable. 15 4> _result. 15 5> Variable = 5. ** exception error: no match of right hand side value 5 


tuples


рдХрднреА-рдХрднреА рдЪрд░ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдЬреЛ рдХрд┐рд╕реА рддрд░рд╣ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рд╕рд╛рде рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИред рдПрд░реНрд▓реИрдВрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЯрдкрд▓ рдЬреИрд╕рд╛ рдирд┐рд░реНрдорд╛рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдХ tuple рдХрд╛ рдирд┐рдореНрди рд░реВрдк рд╣реИ: {Value1, Value2, ..., ValueN} рдФрд░ рдЗрд╕рдореЗрдВ рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдХрд┐ рдЯреНрдпреВрдкрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╣реИрдХ рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг: рд╣рдореЗрдВ рд╕рдордиреНрд╡рдп рд╡рд┐рдорд╛рди (рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ) рдкрд░ рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
  1> MyPoint = {2,5}. {2,5} 

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдЯрдкрд▓ рдХрд╛ рдЖрдХрд╛рд░ рджреЛ рдореВрд▓реНрдпреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред рдПрдХ рдЯрдкрд▓ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдорд╛рди рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЕрдиреНрдп рдЯреБрдкрд▓реНрд╕ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  1> MyTuple = {1,myAtom,true,{1,false}}. {1,myAtom,true,{1,false}} 


рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди


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

рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдХ рдПрдХрд▓ рдЪрд░ рдХреЗ рдмрдЬрд╛рдп "рдЯреЗрдореНрдкрд▓реЗрдЯ" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрджрд┐ рдбреЗрдЯрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реЗ рдЪрд░ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдиреЛрдВ рдореЗрдВ рдореИрдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  1> {X,Y} = {1,2}. {1,2} 2> X. 1 3> Y. 2 4> Z = {Y,X}. {2,1} 5> {A,B,C} = {myAtom,true,Z}. {myAtom,true,{2,1}} 6> A. myAtom 7> B. true 8> C. {2,1} 

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

рд╣рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╕рднреА рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЯреНрд░рд┐рдкрд▓ рдХреЗ рджреВрд╕рд░реЗ рдореВрд▓реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдПрдХ рдЯреНрд░рд┐рдкрд▓ рддреАрди рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рдЯрдкрд▓ рд╣реИ)ред рдмреЗрдХрд╛рд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ "рдЙрддреНрдкрд╛рджрди" рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: _ ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдХреБрдЫ рдореВрд▓реНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХрдИ рдРрд╕реЗ рдЪрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╣реИ рдирд╛?
  1> {_,X,_} = {1,2,3}. {1,2,3} 2> X. 2 


рд╕реВрдЪрд┐рдпреЛрдВ


рдПрдХ рд╕реВрдЪреА рдЕрдирд┐рд╡рд╛рд░реНрдп рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИред рд╕реВрдЪреА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: [Value1, Value2, ..., ValueN] ред рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЛ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдПрдБ, рдкрд░рдорд╛рдгреБ, рдЯреНрдпреВрдкрд▓реНрд╕, рдЕрдиреНрдп рд╕реВрдЪрд┐рдпрд╛рдБ рдЖрджрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
  1> [1,2,true,atom,{5,4},[true,false]]. [1,2,true,atom,{5,4},[true,false]]. 

Erlang рдореЗрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдЕрдЬреАрдм рдмрд╛рдд рд╣реИ:
  1> [100,101,102,103]. "defg" 

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

рд╕реВрдЪрд┐рдпреЛрдВ ( ++ ) рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдШрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ( -- )ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпреЗ рдСрдкрд░реЗрдЯрд░ рднреА рд╕рд╣рдпреЛрдЧреА рд╣реИрдВред
  1> [1,2,3,4,5] ++ [6,7]. [1,2,3,4,5,6,7] 2> [1,2,3,4,5] -- [2,3]. [1,4,5] 3> [1,2,3] ++ []. [1,2,3] 4> [1,2,3,4,5] -- [1,2,3] -- [3]. [3,4,5] 5> [1,2,3] ++ [4,5,6] -- [4,5]. [1,2,3,6] 

рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рднреА рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдореБрдЦреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рд╡реЗ рд╕рдорд╛рди рд╣реИрдВ, рддреЛ рдкреВрдВрдЫ рдХреЗ рд╕рд┐рд░ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЖрджрд┐ред рдкрд╣рд▓реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкрд╣рд▓реА рд╕реВрдЪреА рдмрдбрд╝реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓рд╛ рддрддреНрд╡ рдЬреЛ рджреВрд╕рд░реА рд╕реВрдЪреА рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рд╡рд╣ рдмрдбрд╝рд╛ рд╣реИ ( 4 > 1 )ред
  1> [1,2,3,4,0] > [1,2,3,1,1000,2000,6589]. true 

рд╕реВрдЪреА рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд╕рд┐рд░ ( head ) рдФрд░ рдкреВрдВрдЫ ( tail )ред рд╕рд┐рд░ рд╕реВрдЪреА рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╣реИ, рдФрд░ рдкреВрдВрдЫ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╣реИред рдкреВрдВрдЫ, рдмрджрд▓реЗ рдореЗрдВ, рдПрдХ рд╕рд┐рд░ рдФрд░ рдкреВрдВрдЫ рднреА рд╣реИред рдЬрдм рдПрдХ рдкреИрдЯрд░реНрди рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рди, рдСрдкрд░реЗрдЯрд░ | , рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рд┐рд░ рдФрд░ рдкреВрдВрдЫ рдХреЗ рдмреАрдЪ рдХреА рд╕реАрдорд╛ рдХрд╣рд╛рдВ рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИред
  1> [Head|Tail] = [1,2,3,4,5]. [1,2,3,4,5] 2> Head. 1 3> Tail. [2,3,4,5] 4> [Second|_] = Tail. [2,3,4,5] 5> Second. 2 


рд╕реВрдЪреА рдЬрдирд░реЗрдЯрд░


рдмреЗрд╢рдХ, рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдХрд╛рдлреА рдердХрд╛ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рднрд╛рд╖рд╛ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдПрдХ рд╣реА рд░рд╛рдп рдХреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП Erlang рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реВрдЪрд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕рдХреЗ рдХрд╛рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рдХреЛрдб рд▓рд┐рдЦрдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реВрдЪреА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 1 рд╕реЗ 10 рдЧреБрдирд╛ 3 рддрдХ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред
  1> [X*3 || X <- [1,2,3,4,5,6,7,8,9,10]]. [3,6,9,12,15,18,21,24,27,30] 

рд╣рдорд╛рд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ [Expr || Item <- SourceList]. [Expr || Item <- SourceList]. SourceList рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ Item рдЪрд░ рдХреЗ рд╕реНрдерд╛рди рдкрд░ Expr рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкрд░рд┐рдгрд╛рдореА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рд╣реИ рдирд╛?

рд▓реЗрдХрд┐рди рдЬрд┐рд╕ рд░реВрдк рдореЗрдВ рдпрд╣ рдЬрдирд░реЗрдЯрд░ рд╣реИ рд╡рд╣ рдЕрдм рд▓рдЧрднрдЧ рдмреЗрдХрд╛рд░ рд╣реИред рдЖрдЗрдП рдХрд╛рд░реНрдп рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рдореВрд▓ рд╕реВрдЪреА рд╕реЗ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдХрд╛рдо рдХрд░реЗрдВ, рдЬреЛ 5 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВред
  1> [X*3 || X <- [1,2,3,4,5,6,7,8,9,10], X rem 2 =:= 0, X > 5]. [18,24,30] 

рдЕрдм рд╣рдорд╛рд░реЗ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рд░реВрдк рд╣реИ [Expr || Item <- SourceList, Condition1, Condition2, ..., Condition2]. [Expr || Item <- SourceList, Condition1, Condition2, ..., Condition2]. рдпрд╣ рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдПрд░рд▓реИрдВрдЧ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рд╕реВрдЪреА рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╢рд░реНрддреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рддрддреНрд╡ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИред рдХрдИ рд╕реНрд░реЛрдд рд╕реВрдЪрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ рдЬрдирд░реЗрдЯрд░ рд▓рд┐рдЦреЗрдВ рдЬреЛ рд╕рдо рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЛ рез рд╕реЗ рел рддрдХ рдФрд░ рд╡рд┐рд╖рдо рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рем рд╕реЗ резреж рддрдХ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпреБрдЧреНрдо рдХреЛ рджреЛ рддрддреНрд╡реЛрдВ рдХреЗ рдЯрдкрд▓ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдП - рдПрдХ рдпреБрдЧреНрдоред
  1> [{X,Y} || X <- [1,2,3,4,5], Y <- [6,7,8,9,10], X rem 2 =:= 0, Y rem 2 =:= 1]. [{2,7},{2,9},{4,7},{4,9}] 

рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдирд░реЗрдЯрд░ рдХрд╛ рд░реВрдк рд╣реИ [Expr || Item1 <- SourceList1, Item2 <- SourceList2, ..., ItemN <- SourceListN, Condition1, Condition2, ..., ConditionN] [Expr || Item1 <- SourceList1, Item2 <- SourceList2, ..., ItemN <- SourceListN, Condition1, Condition2, ..., ConditionN] ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрд░рд▓реИрдВрдЧ рдореВрд▓ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЙрддреНрдкрд╛рдж рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЙрдирдХреЗ рддрддреНрд╡ рдЬреЛ рд╢рд░реНрддреЛрдВ рдХреЛ рдлрд┐рдЯ рдХрд░рддреЗ рд╣реИрдВ)ред

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

рдирд┐рд╖реНрдХрд░реНрд╖


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

рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдореМрдЬреВрджрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдПрдХ рдЕрдЪреНрдЫрд╛ рдХреЛрдб рд╣реИред

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


All Articles