рдЗрддрдирд╛ рд╕рдордп рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдЯреАрдо рдХреЛ рдПрдХ рдирдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ рдФрд░ рдЙрд╕реЗ рдПрд░рд▓рд╛рдВрдЧ рд╕реЗ рдорд┐рд▓рд╡рд╛рдирд╛ рдерд╛ред рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
рдПрд░реНрд▓рд╛рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдирд┐рдпрдо рдФрд░ рдХрдиреНрд╡реЗрдВрд╢рди рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЬреЛ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЭреВрда рдмреЛрд▓ рд░рд╣рд╛ рдерд╛ред рдХреНрдпрд╛, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореИрдВ рд╣рдмреНрд░реЛрд╡реНрд╕реНрдХ рдирд╛рдЧрд░рд┐рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ рдЬреЛ рд╕реАрдЦрдиреЗ рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдЕрджреНрднреБрдд рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдиреБрд╡рд╛рдж рдирд┐: рд╢реБрд▓реНрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрдбрд╝реА рдЖрд▓реЛрдЪрдирд╛ рди рдХрд░реЗрдВред
1. рдЙрджреНрджреЗрд╢реНрдп
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреБрдЫ рдкрд╣рд▓реБрдУрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рди рдкрд░ рдПрд░рд▓реИрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
2. рдПрд░рд▓рд╛рдВрдЧ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╢рдмреНрджрд╛рд╡рд▓реА
рд╕рднреА рдПрд░рд▓рдВрдЧ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдмрджрд▓реЗ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдирддрд╛ рд╣реИред
рдХрд╛рд░реНрдп рдпрд╛ рддреЛ рдЖрдВрддрд░рд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ '-' рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд░рдЦреА рдЬрд╛рддреА рд╣реИрдВред
рдПрд░рд▓рд╛рдВрдЧ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рд╕рднреА рдХрд╛рдо рдзрд╛рдЧреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдзрд╛рдЧрд╛, рдмрджрд▓реЗ рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рднреЗрдЬрдХрд░ рдзрд╛рд░рд╛рдПрдБ рдЖрдкрд╕ рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рд╡реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ рдореЗрдВ рддрдм рддрдХ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рд╡реЗ рд╣реИрдВ
рдХреЛрдИ рдЬрд░реВрд░рдд рдирд╣реАрдВ рдЙрдарддреАред
рдзрд╛рд░рд╛рдПрдБ рд▓рд┐рдВрдХрд┐рдВрдЧ (
рд▓рд┐рдВрдХ рдХрдорд╛рдВрдб) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдХрд╛рдо рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдЬрдм рдХреЛрдИ рдереНрд░реЗрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдпрд╛ рдбреНрд░реЙрдк рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрдХреЗрдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рд╕рдВрдмрдВрдзрд┐рдд рдереНрд░реЗрдбреНрд╕ рдХреЗ рд▓рд┐рдП рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддреБрд░рдВрдд рдСрдкрд░реЗрд╢рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рд▓реЗрдХрд┐рди рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ
trap_exit рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рдХреЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╢реБрджреНрдз рдХрд╛рд░реНрдп рдРрд╕реЗ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдореВрд▓реНрдп рдХреЗрд╡рд▓ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЙрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ, рд╡реЗ рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрд┐рддреАрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рдЬреЛ рд╢реБрджреНрдз рдирд╣реАрдВ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдЖрдорддреМрд░ рдкрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдлрд╝рдВрдХреНрд╢рди:
- рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ
- рд╕рдВрджреЗрд╢ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
- рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд┐рдпрд╛
- рдПрдХ рдмреАрдЖрдИрдПрдл рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ / 1 , рдкреБрдЯ / 2 , рдЗрд░реЗрдЬрд╝ / 1 , рдкреНрд░реЛрд╕реЗрд╕_рдлреНрд▓реИрдЧ 2 )
3 рдбрд┐рдЬрд╛рдЗрди рд╕рд┐рджреНрдзрд╛рдВрдд
3.1 рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ
Erlang рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдореВрд▓ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЗрдХрд╛рдИ рд╣реИрдВред рдЗрдирдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдирд┐рд░реНрдпрд╛рдд рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд▓реЛрдЧ рд╣реА рддреГрддреАрдп-рдкрдХреНрд╖ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗред
рдореЙрдбреНрдпреВрд▓ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рд╕рд╣рдордд рд╣реВрдВ, рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдЬреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИред
рдЖрдЦрд┐рд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЛ рдХреЛрдИ рднреА рдореЙрдбреНрдпреВрд▓ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рд╡рд╣ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдбрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореЙрдбреНрдпреВрд▓ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддрд╛ рд╣реИред
3.2 рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЬреЛ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рдмрдирд╛рдП рд░рдЦрдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдмрджрд▓рддрд╛ рд╣реИ
рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЬрд╣рд╛рдВ рднреА рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╣рд╛рдВ рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдореЙрдбреНрдпреВрд▓ рдХреЙрд▓ рдПрдХ рдкреЗрдбрд╝ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд▓реВрдкреНрд╕ рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рдл рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЦреБрдж рд╕реЗред рдЗрд╕рдХреЗ рд▓рд┐рдП,
рд░реИрдВрдЧрд▓рд░ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЧреНрд░рд╛рдлрд╡рд┐рдЬрд╝-рдЖрдзрд╛рд░рд┐рдд рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдлрд╝рдВрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЧреНрд░рд╛рдлрд╝ рдЦреАрдВрдЪ рд╕рдХрддрд╛ рд╣реИ)
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХреЙрд▓ рдХреЛрдб рдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

рдФрд░ рдирд╣реАрдВ:

3.3 рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рд╣реА рд░рдЦреЗрдВред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ (рдореЙрдбреНрдпреВрд▓) рдХреЗрд╡рд▓ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдбреЗрд╡рд▓рдкрд░ рдХрд╛ рдХрд╛рд░реНрдп рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЬрд┐рд╕рдореЗрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ, рдЕрдЪреНрдЫреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдФрд░
рд╕реВрдЪрд┐рдпреЛрдВ_рдФрд░_рдореЗрдереЛрдб , рдЬрд┐рд╕рдореЗрдВ рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ рдЧрдгрд┐рддреАрдп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЦрд░рд╛рдм рд╣реИред
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛, рдЬрдм рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рддрдм рдЗрд╕рдХрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
3.4 рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ "рд╣реИрдХреНрд╕" рдФрд░ "рдЧрдВрджрд╛ рдХреЛрдб" рдЕрд▓рдЧ
рдЕрдХреНрд╕рд░, рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕рд╛рдл" рдФрд░ "рдЧрдВрджреЗ" рдХреЛрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдРрд╕реЗ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрд▓рдЧ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЧрдВрджрд╛ рдХреЛрдб":
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
- erlang рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ : рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП process_info / 1 :)
- рдХреБрдЫ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдк рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рддреЗ рдереЗ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдХрд░рдирд╛ рдерд╛
рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд╛рдл рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдФрд░ "рдЧрдВрджрд╛", рдкрд╣рд▓реЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рджреВрд╕рд░реЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬред
3.5 рдпрд╣ рдордд рд╕реЛрдЪреЛ рдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдЧрд╛
рдпрд╣ рдордд рд╕реЛрдЪреЛ рдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк
рд░реВрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рд╕рд╣реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рд░реНрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдпрд╣ рдирд╣реАрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬрдм рддрд░реНрдХ рд╕рд╣реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ рддреЛ рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗред
рд╕рдорд╛рди рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ:
do_something(Args) -> case check_args(Args) of ok -> {ok, do_it(Args)}; {error, What} -> String = format_the_error(What), io:format("* error:~s\n", [String]),
рдРрд╕рд╛ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
do_something(Args) -> case check_args(Args) of ok -> {ok, do_it(Args)}; {error, What} -> {error, What} end. error_report({error, What}) -> format_the_error(What).
рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рд╣рдореЗрд╢рд╛ рдХрдВрд╕реЛрд▓ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ, рджреВрд╕рд░реЗ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рд╡рд┐рд╡рд░рдг рдмрд╕ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░ рдЦреБрдж рддрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ - рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ рдпрд╛ рдЗрд╕реЗ
error_report / 1 рдХреЗ рд╕рд╛рде рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд╣ рдпрд╣ рдЪреБрдирдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред
3.6 рдХреЛрдб рд▓реЙрдЬрд┐рдХ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреИрдЯрд░реНрди рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд┐рдХрд╛рд▓реЗрдВ
рдпрджрд┐ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЛрд╣рд░рд╛рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдпрд╛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕рд▓рд┐рдП рдкреВрд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдмрд┐рдЦрд░реА рдХрдИ рдкреНрд░рддрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
"рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ" рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ!
3.7 рдЯреЙрдк-рдбрд╛рдЙрди рдбрд┐рдЬрд╝рд╛рдЗрди
рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВред рдЗрд╕рд╕реЗ рдЖрдк рдзреАрд░реЗ-рдзреАрд░реЗ рдХреЛрдб рдХреЛ рдкрд░рд┐рд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЖрджрд┐рдо рдХрд╛рд░реНрдпреЛрдВ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрддреЗред рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХреЛрдб рдбреЗрдЯрд╛ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдЖрдк рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИред
3.8 рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рдХреЛрдб рдХрд╛ рдЕрдиреБрдХреВрд▓рди рди рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ, рдФрд░ рдХреЗрд╡рд▓ рддрднреА, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЕрдиреБрдХреВрд▓рди рдХрд░реЗрдВред
рей.реп рдПрдХ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЛрдб рд▓рд┐рдЦреЗрдВ
рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рд╕рдорд╛рди рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЙрдореНрдореАрджреЛрдВ рдкрд░ рдЦрд░рд╛ рдирд╣реАрдВ рдЙрддрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╛ рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдЙрд╕рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рд╕реНрд╡рдпрдВ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
3.10 рджреБрд╖реНрдкреНрд░рднрд╛рд╡реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
Erlang рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрдИ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╕реНрдЯреНрд░реАрдо рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХреЛрдб рд▓рд┐рдЦреЗрдВред
рдЧреИрд░-рд╢реБрджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╕рдорд░реНрдерди рдХреЗ рд▓реЗрдЦрди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
3.11 рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдЫреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗрдВ
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдХрддрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХрд╛рд░реНрдп рд╣реИ:
-module(queue). -export([add/2, fetch/1]). add(Item, Q) -> lists:append(Q, [Item]). fetch([H|T]) -> {ok, H, T}; fetch([]) -> empty.
рд╡рд╣ рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрддрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреА рд╣реИред рдФрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛:
NewQ = [],
рдЗрд╕рд╕реЗ рдХрдИ рдореБрджреНрджреЗ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ:
- рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрддрд╛рд░ рдПрдХ рд╕реВрдЪреА рд╣реИ
- рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рджреГрд╢реНрдп рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рдкрд╛рдПрдВрдЧреЗ (рдЬрдм, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдХреВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)
рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
-module(queue). -export([new/0, add/2, fetch/1]). new() -> []. add(Item, Q) -> lists:append(Q, [Item]). fetch([H|T]) -> {ok, H, T}; fetch([]) -> empty.
рдЕрдм рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
NewQ = queue:new(), Queue1 = queue:add(joe, NewQ), Queue2 = queue:add(mike, Queue1), тАж
рдпрд╣ рдХреЛрдб рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрдорд┐рдпреЛрдВ рд╕реЗ рдореБрдХреНрдд рд╣реИред
рдЕрдм рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдХреЛ рдХрддрд╛рд░ рдХреА рд▓рдВрдмрд╛рдИ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрддрд╛рд░ рдПрдХ рд╕реВрдЪреА рд╣реИ, рддреЛ рд╡рд╣ рд▓рд┐рдЦреЗрдЧрд╛:
Len = length(Queue)
рдлрд┐рд░ рд╕реЗ, рд╕рдорд╕реНрдпрд╛рдПрдВ, рдЪреВрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд┐рд░ рд╕реЗ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдХрдареЛрд░рддрд╛ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдРрд╕реЗ рдХреЛрдб рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдФрд░ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ:
-module(queue). -export([new/0, add/2, fetch/1, len/1]). new() -> []. add(Item, Q) -> lists:append(Q, [Item]). fetch([H|T]) -> {ok, H, T}; fetch([]) -> empty. len(Q) -> length(Q).
рдЕрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп
рдХрддрд╛рд░: len (рдХрддрд╛рд░) рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХреЗрдЧрд╛ред
рдЗрд╕ рдХреЛрдб рдореЗрдВ, рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрддрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рд╕реЗ "рд╕рд╛рд░" рдХрд░рддреЗ рд╣реИрдВред рдпрд╛рдиреА рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдХрддрд╛рд░ рдЕрдм рдПрдХ "рд╕рд╛рд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░" рд╣реИред
рдпрд╣ рд╕рдм рдЭрдВрдЭрдЯ рдХреНрдпреЛрдВ? рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдпрд╣ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди рддрдВрддреНрд░ рдмрди рдЧрдпрд╛, рдФрд░ рдЕрдм рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдбрд░ рдХреЗ рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмреЗрд╣рддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:
-module(queue). -export([new/0, add/2, fetch/1, len/1]). new() -> {[],[]}. add(Item, {X,Y}) ->
3.12 рдХреЛрдб рдХреЛ рдирд┐рд░реНрдзрд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╡ рдмрдирд╛рдПрдВ
рдирд┐рдпрддрд╛рддреНрдордХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЪрд╛рд╣реЗ рд╡реЗ рдХрд┐рддрдиреА рдмрд╛рд░ рдЪрд▓рд╛рдП рдЧрдП рд╣реЛрдВред рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдФрд░ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЫрдбрд╝реА рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ 5 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдзрд╛рдЧреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлрд┐рд░ рдЬрд╛рдВрдЪ рд▓реЗрдВ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХрд╛ рдХреНрд░рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред
рдЖрдк рд╕рднреА 5 рдХреЛ рдПрдХ рд╕рд╛рде рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдмрджрд▓реЗ рдореЗрдВ рд╢реБрд░реВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ, рд╣рд░ рдмрд╛рд░ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдХрд┐ рдХреНрдпрд╛ рдзрд╛рдЧрд╛ рд╢реБрд░реВ рд╣реБрдЖ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЕрдЧрд▓реЗ рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдВред
3.13 рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рд▓рдЧрд╛рддрд╛рд░ рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдЕрдХреНрд╕рд░, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╕рддреНрдпрд╛рдкрди рддрднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдбреЗрдЯрд╛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдпрджрд┐
рд╡рд┐рдХрд▓реНрдк рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рдпрд╛
рд╕рднреА рд╣реИрдВ рддреЛ рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП! рдЬреЛ рдХреЛрдИ рднреА рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рддрд╛ рд╣реИ рдЙрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕реЗ рдХреНрдпрд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
3.14 рдЪрд╛рд▓рдХ рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддрд░реНрдХ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВ
рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдХрд░рдг рдХреЛ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдХрд╛рд░реНрдп рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдПрд░реНрд▓рд╛рдВрдЧ рд╕реНрдЯреНрд░реАрдо рд╣реИ, рдЬреЛ рдПрдХ рд╕рд░рд▓ рд╕реНрдЯреНрд░реАрдо рдХреА рддрд░рд╣, рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред
3.15 рдЖрдк рдЬреЛ рднреА рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреВрд░реНрд╡рд╡рдд рдХрд░реЗрдВ
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдХреЛрдб рд╣реИ рдЬреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
do_something_with(File) -> case file:open(File, read) of, {ok, Stream} -> doit(Stream), file:close(Stream)
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рдирд╛ рдФрд░ рдмрдВрдж рдХрд░рдирд╛ рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ:
do_something_with(File) -> case file:open(File, read) of, {ok, Stream} -> doit(Stream) Error -> Error end. doit(Stream) -> ...., func234(...,Stream,...). ... func234(..., Stream, ...) -> ..., file:close(Stream)
4 рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ
4.1 рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рд╕реЗ рдЕрд▓рдЧ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдХреЛ рди рдорд┐рд▓рд╛рдПрдВред рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддреБрд░рдВрдд рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдПред
4.2 "рдореБрдЦреНрдп рддреНрд░реБрдЯрд┐" рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ
рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдХреМрди рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣рдореЗрд╢рд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ, рдХрд░реНрдиреЗрд▓ рдХреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ рд╕рд╛рдзрд╛рд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд╛рдордХрд╛рдЬ рдкрд░ рдХреЛрдИ рдЕрд╕рд░ рдирд╣реАрдВ рдкрдбрд╝реЗрдЧрд╛ред
рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЬрд┐рд╕реЗ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдо "рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд░реНрдиреЗрд▓" рдХрд╣рддреЗ рд╣реИрдВред рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдпрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдиреА рдордзреНрдпрд╡рд░реНрддреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред
5 рд╕реНрдЯреНрд░реАрдо, рд╕рд░реНрд╡рд░ рдФрд░ рд╕рдВрджреЗрд╢
5.1 рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рднреА рд╕реНрдЯреНрд░реАрдо рдХреЛрдб рд▓рд╛рдЧреВ рдХрд░реЗрдВ
рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдереНрд░реЗрдб рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдо рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдзрд╛рдЧреЗ рдХрд╛ рдореБрдЦреНрдп рд▓реВрдк рдПрдХ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХрдИ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рдкреНрд░рдЧрддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ
рд╕рд╛рдорд╛рдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реЗ рд╕рд┐рд░реНрдл рдкреНрд░рд╡рд╛рд╣ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдХрдИ рдереНрд░реЗрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдХреЙрдорди рдХреЛрдб рдХреЛ рдЗрд╕рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
5.2 рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдзрд╛рд░рд╛рдПрдБ рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдореВрд▓ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рддрддреНрд╡ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рдФрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛред
5.3 рдкрдВрдЬреАрдХреГрдд рдзрд╛рд░рд╛рдПрдБ
рдзрд╛рд░рд╛рдУрдВ рдХреЛ рдЙрд╕реА рдирд╛рдо рдХреЗ рддрд╣рдд рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрдирдХрд╛ рдХреЛрдб рд╣реИред рдЗрд╕рд╕реЗ рд╕рдорд░реНрдерди рдореЗрдВ рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреАред рдХреЗрд╡рд▓ рдЙрди рдзрд╛рд░рд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред
5.4 рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдзрд╛рдЧрд╛ рдмрдирд╛рдПрдВ
рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рд╕реАрдзреЗ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рдореБрдЦреНрдп рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЙрдЪрд┐рдд рд╣реИ:
"рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред"
рдпрджрд┐ рдЖрдк рдЗрд╕ рдирд┐рдпрдо рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред
5.5 рдкреНрд░рддреНрдпреЗрдХ рдзрд╛рдЧреЗ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ "рднреВрдорд┐рдХрд╛" рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдзрд╛рд░рд╛рдПрдБ рд╡рд┐рднрд┐рдиреНрди рднреВрдорд┐рдХрд╛рдПрдБ рдирд┐рднрд╛ рд╕рдХрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ, рдПрдХ рдереНрд░реЗрдб рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛ рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рджреЛ рдереНрд░реЗрдб рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред
рдЕрдиреНрдп рднреВрдорд┐рдХрд╛рдПрдБ:
- рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ ( рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ ) - рдкреНрд░рд╡рд╛рд╣ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ;
- рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ ( рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ ) - рдПрдХ рдирд┐рдпрдорд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдзрд╛рд░рд╛, рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ;
- рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдзрд╛рдЧрд╛ (рдпрд╛ рд╕рд┐рд╕реНрдЯрдо, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ ) - рдПрдХ рдРрд╕рд╛ рдзрд╛рдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
5.6 рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
gen_server рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдХрд░реЗрдЧрд╛ред рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдпрд╣ рд╕рд╣реА рд╣реИред
5.7 рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдЯреИрдЧ рдЬреЛрдбрд╝реЗрдВ
рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдЯреИрдЧ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЯреИрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
рдкреНрд░рд╛рдкреНрдд рдмреНрд▓реЙрдХ рдореЗрдВ рдЙрдирдХрд╛ рдЖрджреЗрд╢ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдФрд░ рдирдП рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЖрдкрдХреЛ рдРрд╕рд╛ рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
loop(State) -> receive ... {Mod, Funcs, Args} ->
рдпрджрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
{get_status_info, From, Option} рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдЙрд╕рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрд╣рд▓реЗ рдмреНрд▓реЙрдХ рдХреЗ рддрд╣рдд
рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрдШрд░реНрд╖ рдкреИрджрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдирдпрд╛ рдХреЛрдб рдХрднреА рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рд╕рдВрджреЗрд╢ рд╕рдордХрд╛рд▓рд┐рдХ рд╣реИрдВ, рддреЛ рдкрд░рд┐рдгрд╛рдо рдХреЛ рднреА рдЯреИрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдиреБрд░реЛрдз рд╕реЗ рдЕрд▓рдЧред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рдЬрдм
get_status_info рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛
рдЬрд╛рддрд╛ рд╣реИ , рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛
рд╕реНрдерд┐рддрд┐_info рдЖрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдирд┐рдпрдо рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рд╕рд╣реА рдХреЛрдб рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
loop(State) -> receive ... {execute, Mod, Funcs, Args} ->
5.8 рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рдЕрдЬреНрдЮрд╛рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдХрддрд╛рд░ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ
рдХрддрд╛рд░ рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдХреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣:
main_loop() -> receive {msg1, Msg1} -> ..., main_loop(); {msg2, Msg2} -> ..., main_loop(); Other ->
рел.ред рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрддреЗ рд╕рдордп рдкреВрдВрдЫ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдореЗрдореЛрд░реА рдУрд╡рд░рдлреНрд▓реЛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд▓ рд░рд┐рдХрд░реНрд╕рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рддрд░рд╣ рди рд▓рд┐рдЦреЗрдВ:
loop() -> receive {msg1, Msg1} -> ..., loop(); stop -> true; Other -> error_logger:log({error, {process_got_other, self(), Other}}), loop() end, io:format("Server going down").
рдЗрд╕ рддрд░рд╣ рдмреЗрд╣рддрд░:
loop() -> receive {msg1, Msg1} -> ..., loop(); stop -> io:format("Server going down"); Other -> error_logger:log({error, {process_got_other, self(), Other}}), loop() end.
5.10 рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдПрдХреНрд╕реЗрд╕ рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдПрдВ
рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ рд╕реАрдзреЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдореИрд╕реЗрдЬрд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдВрддрд░рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рдФрд░ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
-module(fileserver). -export([start/0, stop/0, open_file/1, ...]). open_file(FileName) -> fileserver ! {open_file_request, FileName}, receive {open_file_response, Result} -> Result end. ...<code>...
5.11 рдЯрд╛рдЗрдордЖрдЙрдЯ
рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ
рдмрд╛рдж рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрддреНрдпрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рдиреА рдмрд░рддреЗрдВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрдм рд╕рдВрджреЗрд╢ рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдмрд╛рдж рдЖрддрд╛ рд╣реИред (рдХреНрд▓реЙрдЬ 5.8 рджреЗрдЦреЗрдВ)ред
5.12 рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рдЕрд╡рд░реЛрдзрди
рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдзрд╛рдЧреЗ
trap_exit рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЕрднреА рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
6 Erlang рдХреЛрдб рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
6.1 рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рд░рд┐рдХреЙрд░реНрдб рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдЖрдВрддрд░рд┐рдХ Erlang рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЯрдкрд▓ рд╣реИред рд╡рд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдПрд░реНрд▓рд╛рдВрдЧ 4.3 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рд░рд┐рдХреЙрд░реНрдб C рдореЗрдВ
рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рдорд╛рди рд╣реИ рдпрд╛ рдкрд╛рд╕реНрдХрд▓ рдореЗрдВ
рд░рд┐рдХреЙрд░реНрдб рд╣реИред
рдпрджрд┐
рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдХрдИ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЙрдирдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
6.2 рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдФрд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдХрднреА рднреА рдХреЙрд░реНрдЯреЗрдЬ рдХреА рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рди рдХрд░реЗрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
demo() -> P = #person{name = "Joe", age = 29}, #person{name = Name1} = P,
рдЗрд╕ рддрд░рд╣ рд╕реЗ
рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ:
demo() -> P = #person{name = "Joe", age = 29}, {person, Name, _Age, _Phone, _Misc} = P.
6.3 рдПрдХ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдВ
рдЗрд╕ рддрд░рд╣ рди рд▓рд┐рдЦреЗрдВ:
keysearch(Key, [{Key, Value}|_Tail]) -> Value;
рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде,
{Key, Value} рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ
рдЧрд▓рдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред рдпрд╣рд╛рдБ рд╕рд╣реА рдХреЛрдб рд╣реИ:
keysearch(Key, [{Key, Value}|_Tail]) -> {value, Value};
6.4 рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдкрдХрдбрд╝рдиреЗ рдФрд░ рдлреЗрдВрдХрдиреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ
рдХреИрдЪ рдФрд░
рдереНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред
рдмрд╛рд╣реНрдп рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛, рдпрд╛ рдбреЗрдЯрд╛ рдХреЛ рдЬрдЯрд┐рд▓ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдиреЗ рдкрд░
рдкрдХрдбрд╝ рдФрд░
рдлреЗрдВрдХрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдкрд╛рда рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг)ред
6.5 рдЕрддреНрдпрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рдФрд░
рдбрд╛рд▓ рджреЗрдВред
рдкреБрдЯ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдПрдХ рдФрд░ рддрд░реНрдХ рдЬреЛрдбрд╝рдХрд░ рдХрд╛рдлреА рд╕рд░рд▓ рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рди рд▓рд┐рдЦреЗрдВ:
tokenize([H|T]) -> ...; tokenize([]) -> case get_characters_from_device(get(device)) of
рдмреЗрд╣рддрд░ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛:
tokenize(_Device, [H|T]) -> ...; tokenize(Device, []) -> case get_characters_from_device(Device) of
рдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░
рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдбреАрдмрдЧрд┐рдВрдЧ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рди рдХреЗрд╡рд▓ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдкрд░, рдмрд▓реНрдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢рдмреНрджрдХреЛрд╢ рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддреНрд░реБрдЯрд┐ рдкрд░
рдПрд░реНрд▓реИрдВрдЧ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
bad_match ) рд╡рд┐рд╡рд░рдг рдореЗрдВ рдХреЗрд╡рд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рджрд▓реАрд▓реЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рд╕рдордп рд╕реНрдЯреНрд░реАрдо рд╢рдмреНрджрдХреЛрд╢ рдХреА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВред
6.6 рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ
рдЖрдпрд╛рдд рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдХрдард┐рди рд╣реИред рдпрд╣ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рднреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛрдВред
6.7 рдирд┐рд░реНрдпрд╛рдд рдХрд╛рд░реНрдп
рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░реА рдкрд╣реБрдВрдЪ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
- рд╕реНрдкреЙрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдпрд╛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ рд╕реЗ рд╣реА рдЖрд╡реЗрджрди рдХрд░реЗрдВред
рд╕рдореВрд╣-рдирд┐рд░реНрдпрд╛рдд рдФрд░
рдирд┐рд░реНрдпрд╛рдд рдХреЗ рдХрд╛рд░рдг рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВред
7. рдХреЛрдб рдХреА рд╢реИрд▓реАрдЧрдд рдФрд░ рд╢рд╛рдмреНрджрд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
7.1 рднрд╛рд░реА рдиреЗрд╕реНрдЯреЗрдб рдХреЛрдб рди рд▓рд┐рдЦреЗрдВ
рджреГрдврд╝рддрд╛ рд╕реЗ рдиреЗрд╕реНрдЯреЗрдб рдХреЛрдб рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ
рдорд╛рдорд▓реЗ /
рдЕрдЧрд░ / рдмреНрд▓реЙрдХ
рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ
рддреЛ рдЕрдиреНрдп
рдорд╛рдорд▓реЗ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рд╣реЛрддреЗ рд╣реИрдВ /
рдпрджрд┐ рдмреНрд▓реЙрдХ
рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЦрд░рд╛рдм рд░реВрдк рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рдХреЛрдб рдХреЛ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдРрд╕реЗ рдХреЛрдб рдХреЛ рдЫреЛрдЯреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
7.2 рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рди рд▓рд┐рдЦреЗрдВ рдЬреЛ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реЛрдВ
рдореЙрдбреНрдпреВрд▓ рдореЗрдВ 400 рд╕реЗ рдЕрдзрд┐рдХ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдХреЛрдб рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдИ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред
7.3 рдРрд╕реЗ рдХрд╛рд░реНрдп рди рд▓рд┐рдЦреЗрдВ рдЬреЛ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╣реЛрдВ
рдлрд╝рдВрдХреНрд╢рди 15-20 рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд┐рд░реНрдл рдПрдХ рд▓рд╛рдЗрди рд▓рд┐рдЦрдХрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВред
7.4 рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдХрдИ рд╡рд░реНрдг рди рд▓рд┐рдЦреЗрдВ
рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 80 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (A4 рдкрд░ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП)ред
рдПрд░реНрд▓реИрдВрдЧ рдореЗрдВ, рд▓рдкреЗрдЯрдиреЗ рдХреЗ рдмрд╛рдж рдШреЛрд╖рд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рде рдЪрд┐рдкрдХрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
io:format("Name: ~s, Age: ~w, Phone: ~w ~n" "Dictionary: ~w.~n", [Name, Age, Phone, Dict])
7.5 рдирд╛рдордХрд░рдг рдЪрд░
рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рд╣реА (рд╕рд╛рд░реНрдердХ) рдирд╛рдо рдЪреБрдирдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рд╣реИред
рдпрджрд┐ рдЪрд░ рдирд╛рдо рдореЗрдВ рдХрдИ рд╢рдмреНрдж рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ
'_' рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдпрд╛
CamelCase рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд┐рд╕реА рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
'_' рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐
'_' рдХреЗ рд╕рд╛рде рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдо рд▓рд┐рдЦреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
_Name ред
7.6 рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдирд╛рдордХрд░рдг
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдЙрд╕рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкрд░рд┐рдгрд╛рдо рдирд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрдорд╛рдирд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдорд╛рдирдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЬреИрд╕реЗ рдХрд┐
рдкреНрд░рд╛рд░рдВрдн ,
рд░реЛрдХ ,
init ,
main_loop ...)ред
рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдХрд╛рд░реНрдп, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд╕рд╛рде, рдПрдХ рд╣реА рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдореЙрдбреНрдпреВрд▓: рдореЙрдбреНрдпреВрд▓_рдЗрдиреНрдлреЛ () )ред
рдЧрд▓рдд рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдЪрдпрди рд╕рдмрд╕реЗ рдЖрдо рдЧрд▓рддреА рд╣реИред
рдлрдВрдХреНрд╢рди рдХреЗ рдирд╛рдореЛрдВ рдореЗрдВ рдХреБрдЫ рд░реВрдврд╝рд┐рдпрд╛рдВ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд╕рд░реНрдЧ
'is_' рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо
рд╕рд╣реА рдпрд╛
рдЧрд▓рдд рд╣реЛрдЧрд╛ ред
is_...() -> true | false check_...() -> {ok, ...} | {error, ...}
7.7 рдирд╛рдордХрд░рдг рдореЙрдбреНрдпреВрд▓
рдПрд░реНрд▓реИрдВрдЧ рдореЗрдВ рдПрдХ рдлреНрд▓реИрдЯ рдореЙрдбреНрдпреВрд▓ рдирд╛рдордХрд░рдг рдореЙрдбрд▓ рд╣реИ, рдЕрд░реНрдерд╛рддред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреЛрдИ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реИрдВ (рд▓реЗрдХрд┐рди, рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣рд╛рдБ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЙрдирдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрднреА рддрдХ рд▓рд╛рдн рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рд▓рд╛рддрд╛ рд╣реИ)ред
рдЖрдорддреМрд░ рдкрд░, рдПрдХ рд╣реА рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХрд┐рд╕реА рддрд░рд╣ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдИрдПрд╕рдбреАрдПрди рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
isdn_init
isdn_partb
isdn_ ...
7.8 рдХреЛрдб рдХреЛ рд╕реБрд╕рдВрдЧрдд рд░рдЦреЗрдВ
рдПрдХ рд╕рдорд╛рди рд╢реИрд▓реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИред
рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рд╕рд╛рде рдЯрдкрд▓ рддрддреНрд╡реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
{12, 23, 45}
рдХреЛрдИ рдмрд┐рдирд╛
{12,23,45}
рдЬреИрд╕реЗ рд╣реА рдЖрдк рдЕрдкрдиреЗ рд▓рд┐рдП рдПрдХ рдПрдХреАрдХреГрдд рд╢реИрд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣рддреЗ рд╣реИрдВред
8 рдХреЛрдб рдкреНрд░рд▓реЗрдЦрди
8.1 рдХреЛрдб рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
рдЖрдкрдХреЛ рд╣реЗрдбрд░ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмрддрд╛рдПрдВ рдХрд┐ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд╣рд╛рдВ рд╕реЗ рдЖрдпрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдб рдХрд┐рд╕реА рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред
рдХрднреА рднреА рдХреЛрдб рдЪреЛрд░реА рди рдХрд░реЗрдВред рд╕реНрд░реЛрдд рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рдЪреЛрд░реА рдХреЛрдб рдХреА рдирдХрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЧреБрдг рдЙрджрд╛рд╣рд░рдг:
-рд░рд┐рд╡рд┐рдЬрди ('рд░рд┐рд╡рд┐рдЬрди: 1.14')ред
-рдкреНрд░рдХрд╛рд╢рд┐рдд ('рддрд┐рдерд┐: 1995/01/01 11:21:11')ред
-рдХреНрд░рд┐рдПрдЯ_рдмреА ('рдПрдХреНрд▓рд╕ @ рдПрд░рд▓рдВрдЧ')ред
-рдореЙрдбрд┐рдлрд╛рдЗрдб ('рддрд╛рд░реАрдЦ: 1995/01/05 13:04:07')ред
-рдореЛрдбрд┐рдлрд╛рдЗ_рдмреА ('mbj @ erlang')ред
8.2 рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЫреЛрдбрд╝реЗрдВ
рдпрджрд┐ рдХреЛрдб рдХреБрдЫ рдорд╛рдирдХ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдЫреЛрдбрд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, RFC)ред
8.3 рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ
рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдХреЛрдб рдореЗрдВ рдЬрд╣рд╛рдВ рддрд╛рд░реНрдХрд┐рдХ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрднрд╡ рд╣реИ,
error_logger рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ:
error_logger : error_msg ( рдкреНрд░рд╛рд░реВрдк , {рд╡рд┐рд╡рд░рдгрд┐рдХрд╛, Arg1 , Arg2 , ....})
рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рддреНрд░реБрдЯрд┐ рд╡рд┐рд╡рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ {Descriptor, Arg1, Arg2, ....} рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред8.4 рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрджреЗрд╢ рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
рдзрд╛рд░рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд╖рд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдЯреБрдкрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдбрдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рд╡рд┐рд╡рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЗрди рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝рд┐рдд рдХрд░реЗрдВред8.5 рдЯрд┐рдкреНрдкрдгреА рдХреЛрдб
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЙрдиреНрд╣реЗрдВ рд╣рдореЗрд╢рд╛ рдЕрдк рдЯреВ рдбреЗрдЯ рд░рдЦреЗрдВредрдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЗрдВрдбреЗрдВрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ %%% рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП редрдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЗрдВрдбреЗрдВрдЯ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ %% рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП редрдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЗрд╕реЗ рдХреА рддрд░рд╣ рд╣реА рдЧрдардмрдВрдзрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ % рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ ред рдЗрд╕ рддрд░рд╣ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдХреЛрдб рдХреЗ рдКрдкрд░ рдпрд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╣реА рд▓рд╛рдЗрди рдкрд░ рдЕрдзрд┐рдХ рдмреЗрд╣рддрд░ (рдпрджрд┐ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ)ред%% рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА
some_useful_functions ( рдЙрдкрдпреЛрдЧреАрдЕрд░реНрдЬреБрдирдореЗрдВрдЯ ) -> рдПрдХ
рдФрд░_рдХреНрд░рд┐рдпрд╛рдПрдВ ( рдЙрдкрдпреЛрдЧреАрдЕрдиреБрдЧрдорди ), %% рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ
рдЯрд┐рдкреНрдкрдгреА% рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
complex_stmnt рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди complex_stmnt ,
...
8.6 рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ
рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:- рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп
- рд╡реИрдз рдЗрдирдкреБрдЯ рдХреНрд╖реЗрддреНрд░
- рдЙрддреНрдкрд╛рджрди рдХреНрд╖реЗрддреНрд░
- рдпрджрд┐ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдХреБрдЫ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
- рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХреНрд░реИрд╢, рдХреЙрд▓ рдЖрдЙрдЯ / 1 рдФрд░ рдереНрд░реЛ / 1 рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ , рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВред
- рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
%% ------------------------------------------------ ----------------------
%% рд╕рдорд╛рд░реЛрд╣: get_server_statistics / 2
%% рдЙрджреНрджреЗрд╢реНрдп: рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
%% рдЖрд░реНрдЧрдиреНрд╕: рд╡рд┐рдХрд▓реНрдк рд╕рд╛рдорд╛рдиреНрдп рд╣реИ |
%% рд░рд┐рдЯрд░реНрди: {рдХреБрдВрдЬреА, рдорд╛рди}
%% рдпрд╛ {рддреНрд░реБрдЯрд┐, рдХрд╛рд░рдг} (рдпрджрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореГрдд рд╣реИ) рдХреА рдПрдХ рд╕реВрдЪреА
%% --------------------- -------------------------------------------------
get_server_statistics ( рд╡рд┐рдХрд▓реНрдк , Pid ) рдЬрдм pid ( Pid ) ->
...
8.7 рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдБ
рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
%% рдлрд╝рд╛рдЗрд▓: my_data_structures.h
%% ----------------------------------------- ----------------------------
%% рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░: рд╡реНрдпрдХреНрддрд┐
%% рдХрд╣рд╛рдБ:
%% рдирд╛рдо: рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ)ред
%% рдЖрдпреБ: рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ)ред
%% рдлреЛрди: рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА (рдбрд┐рдлрд╝реЙрд▓реНрдЯ [] рд╣реИ)ред
%% рддрд╛рдирд╛рд╢рд╛рд╣реА: рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдЬрд┐рд╕рдореЗрдВ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред
%% A {рдХреБрдВрдЬреА, рдорд╛рди} рд╕реВрдЪреА (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЦрд╛рд▓реА рд╕реВрдЪреА рд╣реИ)ред
%% ------------------------------------------------ ----------------------
- рд░рд┐рдХреЙрд░реНрдб ( рд╡реНрдпрдХреНрддрд┐ , {рдирд╛рдо, рдЙрдореНрд░, рдлреЛрди = [], рддрд╛рдирд╛рд╢рд╛рд╣реА = []})ред
8.8 рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░, рдХреЙрдкреАрд░рд╛рдЗрдЯ
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрдкреАрд░рд╛рдЗрдЯ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
% %% ----------------------------------------------- ----------------------
%%% рдХреЙрдкреАрд░рд╛рдЗрдЯ рдПрд░рд┐рдХреНрд╕рди рдЯреЗрд▓рд┐рдХреЙрдо AB 1996
%%%
%%% рд╕рднреА рдЕрдзрд┐рдХрд╛рд░ рд╕реБрд░рдХреНрд╖рд┐рддред рдЗрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдХреЛрдИ рднреА рд╣рд┐рд╕реНрд╕рд╛
%%% рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐рд╕реА рднреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
%% рдХрд┐рд╕реА рднреА рд░реВрдк рдореЗрдВ рдпрд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ, рдореИрдХреЗрдирд┐рдХрд▓, рдлреЛрдЯреЛрдХреЙрдкреА,
%% рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ, рдпрд╛ рдЕрдиреНрдпрдерд╛
%% рдХреА рдкреВрд░реНрд╡ рд▓рд┐рдЦрд┐рдд рдЕрдиреБрдорддрд┐ рдХреЗ рдмрд┐рдирд╛ рдПрд░рд┐рдХреНрд╕рди рдЯреЗрд▓реАрдХреЙрдо рдПрдмреАред
% %% ----------------------------------------------- ----------------------
8.9 рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░, рд╕рдВрд╕реНрдХрд░рдг рдЗрддрд┐рд╣рд╛рд╕
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдЗрддрд┐рд╣рд╛рд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕рдиреЗ рдФрд░ рдХрд┐рд╕ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рд╣реИред%%%---------------------------------------------------------------------
%%% Revision History
%%%---------------------------------------------------------------------
%%% Rev PA1 Date 960230 Author Fred Bloggs (ETXXXXX)
%%% Intitial pre release. Functions for adding and deleting foobars
%%% are incomplete
%%%---------------------------------------------------------------------
%%% Rev A Date 960230 Author Johanna Johansson (ETXYYY)
%%% Added functions for adding and deleting foobars and changed
%%% data structures of foobars to allow for the needs of the Baz
%%% signalling system
%%%---------------------------------------------------------------------
8.10 ,
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред%%%---------------------------------------------------------------------
%%% Description module foobar_data_manipulation
%%%---------------------------------------------------------------------
%%% Foobars are the basic elements in the Baz signalling system. The
%%% functions below are for manipulating that data of foobars and for
%%% etc etc etc
%%%---------------------------------------------------------------------
%%% Exports
%%%---------------------------------------------------------------------
%%% create_foobar(Parent, Type)
%%% returns a new foobar object
%%% etc etc etc
%%%---------------------------------------------------------------------
рдпрджрд┐ рдЖрдк рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдХреБрдЫ рдЕрдзреВрд░рд╛ рд╣реИ, рддреЛ рдЙрдирдХрд╛ рд╡рд░реНрдгрди рдпрд╣рд╛рдВ рдХрд░реЗрдВред рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред8.11 рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгреА рди рдХрд░реЗрдВ - рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ
рдкреБрд░рд╛рдирд╛ рдХреЛрдб рд╣рдЯрд╛рдПрдВ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдПрдХ рд╡рд┐рд╡рд░рдг рдЫреЛрдбрд╝ рджреЗрдВред CSV рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред8.12 рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЬрдЯрд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг (Git, SVN, рдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП9 рдЖрдо рдЧрд▓рддрд┐рдпрд╛рдБ
case /
if /
receive,
( )
put /
get10
.
10.1
рдкреНрд░рддрд┐ рдореЙрдбреНрдпреВрд▓ рдПрдХ рдЕрдзреНрдпрд╛рдпред рдЗрд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡рд┐рд╡рд░рдг рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:- рдирд┐рдпреБрдХреНрддрд┐
- рдЗрдирдкреБрдЯ рд╡рд┐рд╡рд░рдг
- рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рд╡рд░рдг
- рд╕рдВрднрд╡ рдЙрдкрдпреЛрдЧ рдХреЗ рдореБрджреНрджреЛрдВ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ / 1 рдХреЙрд▓ ред
10.2 рд╕рдВрджреЗрд╢ рдХрд╛ рд╡рд░реНрдгрди
рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг, рдХреЗрд╡рд▓ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд▓реЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░10.3 рдзрд╛рдЧрд╛ рд╡рд┐рд╡рд░рдг
рд╕рднреА рдкрдВрдЬреАрдХреГрдд рдзрд╛рд░рд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд┐рд╡рд░рдгредрд╕рднреА рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рдзрд╛рд░рд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╡рд┐рд╡рд░рдгред10.4 рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг
рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдгред