рдХреБрдЫ рдкрд╛рдпрдердирд╡рд╛рджреА рдХреЛрдб рдкрдврд╝рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЕрдиреНрдп рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрд╣рд▓реЗ рдФрд░ рджреВрд╕рд░реЗ рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди - рдирд┐рд░реНрдгрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИрдВ - рд╢рд╛рдпрдж рд╣реА рдХрднреА рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдмрд╛рд░ рд▓рд╛рдЗрдиреЛрдВ рдХреА рддрд░рд╣
my_function(sum(filter(lambda x: x % 3 == 1, [x for x in range(100)])))
рдпрд╛ рдХреНрд╡рд╛рддреНрд░рд┐рдиреНрд╕ рд▓рд╛
xs = [x for x in range(100)] xs_filtered = filter(lambda x: x % 3 == 1, xs) xs_sum = sum(xs_filtered) result = my_function(xs_sum)
рдЖрджрд░реНрд╢рд╡рд╛рджреА рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ
result = [x for x in range(100)] \ | where(lambda x: x % 3 == 1)) \ | sum \ | my_function
рдкрд╛рдпрдерди рдореЗрдВ рдирд╣реАрдВ?
рдЗрд╕ рддрд░рд╣ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЬреВрд▓рд┐рдпрди рдкрд╛рд▓рд╛рд░реНрдб рдиреЗ рдЕрдкрдиреЗ
рдкрд╛рдЗрдк рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред
рдЪрд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
from pipe import * [1,2,3,4] | where(lambda x: x<=2)
рдЙрдлрд╝, рд╕рд╣рдЬ рдЖрд╡реЗрдЧ рдиреЗ рд╕рд╡рд╛рд░реА рдирд╣реАрдВ рдХреАред рдкрд╛рдЗрдк рдЬрдирд░реЗрдЯрд░ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЕрднреА рддрдХ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдирд╛ рд╣реИред
[1,2,3,4] | where(lambda x: x<=2) | as_list
рдпрд╣ рдЬрдирд░реЗрдЯрд░ рд╕реЗ рдорд╛рдиреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд░ рд╕реВрдЪреА () рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдирд┐рдХрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЙрдкрдХрд░рдг рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдЕрдкрдиреЗ рд╢реЛрдз рдореЗрдВ рд╕рдВрдЧрдд рдерд╛ рдФрд░ рд╣рдореЗрдВ рдкрд╛рдЗрдк рдлрд╝рдВрдХреНрд╢рди as_list рдХреА рдкреЗрд╢рдХрд╢ рдХреАред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реВрдЪреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЖрдк рдкрд╛рдпрдерди рдХреЗ рдХрд┐рд╕реА рднреА рдЪрд▓рдиреЗ (рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп) рдЗрдХрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд╣реЛ, "рдЬреЛрдбрд╝реЗ" (рдЯреБрдкрд▓реНрд╕) рдпрд╛, рдФрд░ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк, рдПрдХ рд╣реА рдЬрдирд░реЗрдЯрд░:
def fib(): u""" """ a, b = 0, 1 while 1: yield a a, b = b, a + b fib() | take_while(lambda x: x<10) | as_list
рдХрдИ рд╕рдмрдХ рдпрд╣рд╛рдВ рд╕реЗ рд╕реАрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
- рдкрд╛рдЗрдк рдореЗрдВ рдЖрдк рд╕реВрдЪреА, "рдЬреЛрдбрд╝реЗ", рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдХрд┐рд╕реА рднреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВред
- рдЪреЗрди рдореЗрдВ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЬрдирд░реЗрдЯрд░ рд╣реЛрдЧрд╛ред
- рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ (рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рдпрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрд╛рдЗрдк), рдкрд╛рдЗрдкрд┐рдВрдЧ "рдЖрд▓рд╕реА" рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рд╣реИ рдХрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдПрдХ рдЬрдирд░реЗрдЯрд░ рд╣реИ рдФрд░ рдПрдХ рдЕрдВрддрд╣реАрди рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрд╡рд╛ рдХрд░ рд╕рдХрддреА рд╣реИред
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдирдВрдж рдЕрдзреВрд░рд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
@Pipe def custom_add(x): return sum(x) [1,2,3,4] | custom_add #10
рддрд░реНрдХ? рдЖрд╕рд╛рди:
@Pipe def sum_head(x, number_to_sum=2): acc = 0 return sum(x[:number_to_sum]) [1,2,3,4] | sum_head(3) #6
рд▓реЗрдЦрдХ рдиреЗ рдХреГрдкрдпрд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдкрд╛рдЗрдк рдкреНрд░рджрд╛рди рдХрд┐рдПред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ:
- рдЧрд┐рдирддреА - рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЪрд▓рдиреЗ рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ
- take (n) - рдЗрдирдкреБрдЯ рд╕реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ n рддрддреНрд╡реЛрдВ рдХреЛ iterable рд╕реЗ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред
- tail (n) - рдЕрдВрддрд┐рдо n рддрддреНрд╡реЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
- рд╕реНрдХрд┐рдк (n) - рд╕реНрдХрд╛рдЗрдк n рдкреНрд░рдердо рддрддреНрд╡ред
- рд╕рднреА (рдкреВрд░реНрд╡) - рд╕рд╣реА рд╣реИ рдЕрдЧрд░ рд╕рднреА рдкреБрдирд░рд╛рд╡реГрддреНрдд рддрддреНрд╡ рдкреВрд░реНрд╡рд╡рд░реНрддреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред
- рдХрд┐рд╕реА рднреА (рдкреВрд░реНрд╡) - рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рддрддреНрд╡ рдХреЛ рд╕рд╣реА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕рд╣реА рд╣реИред
- as_list / as_dist - рдЕрдЧрд░ рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдпрджрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдПрдХ рд╕реВрдЪреА / рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рдХреНрд░рдордкрд░рд┐рд╡рд░реНрддрди (рдЖрд░ = рдХреЛрдИ рдирд╣реАрдВ) - рдЗрдирдкреБрдЯ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдЖрд░ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рднреА рд╕рдВрднрд╡ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреЛ рдмрдирд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрд░ рдХреЛ рд▓реЗрди (рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп) рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- stdout - рдорд╛рдирдХ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдпред
- рдЯреА - рдорд╛рдирдХ рдзрд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рддрддреНрд╡ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдФрд░ рдЗрд╕реЗ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░реЗрдВред
- рдЪрдпрди (рдЪрдпрдирдХрд░реНрддрд╛) - рдЪрдпрдирдХрд░реНрддрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рддрддреНрд╡реЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВред
- рдЬрд╣рд╛рдВ (рд╡рд┐рдзреЗрдп) - рдЖрдЧреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрдЬрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рд╡рд┐рдзреЗрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдпреЗ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ:
- netcat (рд╣реЛрд╕реНрдЯ, рдкреЛрд░реНрдЯ) - рдкреНрд░рддреНрдпреЗрдХ рдЪрд▓рдиреЗ рдпреЛрдЧреНрдп рддрддреНрд╡ рдХреЗ рд▓рд┐рдП, рд╕реЙрдХреЗрдЯ рдЦреЛрд▓реЗрдВ, рддрддреНрд╡ рдХреЛ рд╕реНрд╡рдпрдВ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕реНрдЯреНрд░рд┐рдВрдЧ) рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ, рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдореЗрдЬрдмрд╛рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░реЗрдВред
- netwrite (рд╣реЛрд╕реНрдЯ, рдкреЛрд░реНрдЯ) - рдПрдХ рд╣реА рдмрд╛рдд, рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЙрдХреЗрдЯ рд╕реЗ рдирд╣реАрдВ рдкрдврд╝реЗрдВред
рдЗрди рдФрд░ рдЕрдиреНрдп рдкрд╛рдЗрдкреЛрдВ рдХреЛ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ, рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╣реА рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рдкрд╛рдЗрдк рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рд╣реБрдб рдХреЗ рдиреАрдЪреЗ
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдерд╛ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЖрдзрд╛рд░ рдХреЛрдб рд▓реИрдХреЛрдирд┐рдХ рдХреИрд╕реЗ рдерд╛! рдЦреБрдж рдХреЗ рд▓рд┐рдП рдиреНрдпрд╛рдпрд╛рдзреАрд╢:
class Pipe: def __init__(self, function): self.function = function def __ror__(self, other): return self.function(other) def __call__(self, *args, **kwargs): return Pipe(lambda x: self.function(x, *args, **kwargs))
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣реА рд╕рдм рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рд╡рд░реНрдЧред
рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рдбреЗрдХреЛрд░реЗрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЪрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкрд╛рдЗрдк рдХреНрд▓рд╛рд╕ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
рдпрджрд┐ рдкрд╛рдЗрдк рдХреЛ __call__ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рджрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдирдпрд╛ рдкрд╛рдЗрдк рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЦреНрдп рд╕реВрдХреНрд╖реНрдорддрд╛ __ror__ рд╡рд┐рдзрд┐ рд╣реИред рдпрд╣ рдПрдХ рдЙрд▓рдЯрд╛ рдСрдкрд░реЗрдЯрд░ рд╣реИ, рдЬреЛ "рдпрд╛" рдСрдкрд░реЗрдЯрд░ (__or__) рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╛рдПрдВ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рджрд╛рд╣рд┐рдиреЗ рдСрдкрд░реЗрдЯрд░ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рдЧрдгрдирд╛ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдкрд╣рд▓рд╛ рддрддреНрд╡ рджреВрд╕рд░реЗ рдХреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рджреВрд╕рд░реЗ рд╕реЗ рддреАрд╕рд░реЗ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдЬреЗрдирд░реЗрдЯрд░ рднреА рджрд░реНрдж рд░рд╣рд┐рдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╣реИрдВред
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдмрд╣реБрдд, рдмрд╣реБрдд рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдгред
рдЕрдВрддрднрд╛рд╖рдг
рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд╛рдЗрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдореИрдВ рд▓реЛрдХрдкреНрд░рд┐рдп рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ; рдбреЗрдЯрд╛ рдзрд╛рд░рд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП; рдпрд╛ - рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рд░реВрдк рдореЗрдВ - рдХреЙрд▓рдмреИрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЕрд╕реНрддрд░ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдПрдХрдорд╛рддреНрд░ рджреЛрд╖ рд╕реНрд╡рдпрдВ рдЕрд╕реНрдкрд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдХреЗ рдирд┐рд╢рд╛рди рд╣реИрдВред
рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ - рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВред