рдЯреЗрд╕реНрдЯ рдпрд╛ рдкреНрд░рдХрд╛рд░

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


рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ, рдФрд░ рдХрдм - рдкреНрд░рдХрд╛рд░? рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╣рдорд╛рд░реЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрджрд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдХреНрдпрд╛ рдЧрд╛рд░рдВрдЯреА рдорд┐рд▓рддреА рд╣реИ?


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


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


рд╡рд┐рдирд┐рд░реНрджреЗрд╢


рдПрдХ рд╕реВрдЪреА рдФрд░ рдХреБрдЫ рдЕрд░реНрде рджрд┐рдпрд╛ рдЬрд╛рдПред рд╕реВрдЪреА рдореЗрдВ рдЗрд╕ рдореВрд▓реНрдп рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореВрд▓реНрдп рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИред

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


рдЕрдЬрдЧрд░


 def x(y, z): # 10000    

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


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


рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


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


  • рдкреНрд░рд▓реЗрдЦрди
    • Expected рд╣рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ
      рд╣рдореЗрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рдЖрдк рдЕрдкрдиреА рджрд╛рджреА рд╕реЗ рдирдлрд░рдд рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдПрдХ рд░рд╛рдХреНрд╖рд╕ рд╣реИрдВред
  • рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ
    • тЬУ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛
      рдкрд╛рдпрдерди рдПрдХ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдЪрд┐рдВрддрд╛ рдХреЛ рд╣рдорд╕реЗ рджреВрд░ рдХрд░рддреА рд╣реИред PreventsрдЕрднреА рддрдХ, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдХреБрдЫ рднреА рдЖрдкрдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдпрд╛ рд╕реА рдПрдлрдПрдлрдЖрдИ рдХреЛ рдЦреАрдВрдЪрдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИ редever

рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдЕрдЬрдЧрд░


 def test_happy_path(): assert x([1, 2, 3], 2) == 1 def test_missing(): assert x([1, 2, 3], 4) is None 

рдЕрдм рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рддрддреНрд╡ рдЧрд╛рдпрдм рд╣реИ, рддреЛ рдкрд░рд┐рдгрд╛рдо None ?


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


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


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


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


рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


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


  • рдкреНрд░рд▓реЗрдЦрди
    • тЬУ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ
    • Classes рд╣рдо рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
    • Types рд╣рдо рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
      рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддрд░реНрдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдмрд╛рдд рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
    • Expected рд╣рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ
      Tick тАЛтАЛрдореВрд▓ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдпрд╣рд╛рдБ рдкрд░ рдЯрд┐рдХ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХ рдХреНрд░реЙрд╕ рд▓рдЧрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреВрдВрдЧрд╛, рдКрдкрд░ рдЯрд┐рдкреНрдкрдгреА рджреА рдЧрдИ
  • рд╡рд┐рдирд┐рд░реНрджреЗрд╢
    • Least рдХрдо рд╕реЗ рдХрдо рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
    • Is рд▓реМрдЯрд╛ рд╣реБрдЖ рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡реИрдз рд╕реВрдЪрдХрд╛рдВрдХ рд╣реЛрддрд╛ рд╣реИ
    • тЬЧ рд▓реМрдЯрд╛ рд╣реБрдЖ рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдореВрд▓реНрдп рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
    • Ing рдорд┐рд╕рд┐рдВрдЧ рдЖрдЗрдЯрдо рд╣рдореЗрд╢рд╛ None Nothing None / Nothing None рд▓реМрдЯрд╛рддрд╛ рд╣реИ
  • рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ
    • тЬЧ рдХреЛрдИ рдЯрд╛рдЗрдкреЛ рдпрд╛ рдЧрд▓рдд рдирд╛рдо рдирд╣реАрдВ
      рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдкрд╛рдпрдерди рдПрдХ рдЧрддрд┐рд╢реАрд▓ рднрд╛рд╖рд╛ рд╣реИ, рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЪреАрдЬреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╣реИ, рд╣рдо рдХрднреА рднреА рдпрд╣ рд╕рд╛рдмрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред
      рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рдпрд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рд╕рд╣реА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреА рд╡реИрдзрддрд╛ рдЙрд╕ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    • Ull рдХреЛрдИ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд null рдирд╣реАрдВ
    • тЬЧ рддреНрд░реБрдЯрд┐ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ
      рдореЗрд░реЗ рдЕрдиреБрднрд╡ рдореЗрдВ, рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ: рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдПрдХ рд▓рд╛рдкрддрд╛ рддрддреНрд╡ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ None рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдорд╛рди рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рдирдВрдмрд░ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдХ рдЕрдЦрдВрдб рдЕрдкрд╡рд╛рдж рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ
    • тЬУ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛
    • Be рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
    • Effects рдХреЛрдИ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ
    • Ions рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ
    • тЬЧ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ
    • тЬЧ рдХреЛрдИ рд╕реНрдерд╛рдпреА рдЪрдХреНрд░ рдирд╣реАрдВ

рд╣рд╛рд╕реНрдХреЗрд▓


 xyz = -- 10000   

рдпрджрд┐ рдЖрдк рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ: рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди x рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ y рдФрд░ z ред рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ, рдЖрдк рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдХрдЯ рдЬрд╛рдПрдВрдЧреЗ ellunless, рдмреЗрд╢рдХ, рдЖрдк рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзреБрдирд┐рдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ systemтЯзред


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


рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╣рдо рдпрд╣рд╛рдВ рдЗрддрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:


  • рдкреНрд░рд▓реЗрдЦрди
    • Expected рд╣рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ
  • рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ
    • тЬУ рдХреЛрдИ рдЯрд╛рдЗрдкреЛ рдпрд╛ рдЧрд▓рдд рдирд╛рдо рдирд╣реАрдВ
      рдЪреВрдВрдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдПрдХ рд╕рдВрдХрд▓рд┐рдд рднрд╛рд╖рд╛ рд╣реИ, рд╕рднреА рдирд╛рдореЛрдВ рдХреЛ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╣реИ рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
    • Ull рдХреЛрдИ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд null рдирд╣реАрдВ
      рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдмрд╕ null рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ!
  • рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ
    • тЬУ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛
    • Be рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
    • тЬУ рдХреЛрдИ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ
      Did рдореВрд▓ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдЗрд╕ рдЖрдЗрдЯрдо рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдпрд╣ рдиреЛрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреВрдВрдЧрд╛ рдХрд┐ рдпрджрд┐ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рд╣реИрдВ, рддреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдШрдЯрд╛ рд╣реБрдЖ рдкреНрд░рдХрд╛рд░ рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЛ рдЙрдирдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдПрдЧрд╛ред

рд╣рд╛рд╕реНрдХреЗрд▓ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛


 x :: Eq a => [a] -> a -> Maybe Int xyz = -- ... 

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рджрд╛рджреА-рдирд╛рдиреА рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА: рдкрд░реАрдХреНрд╖рдгреЛрдВ рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХрд┐рд╕реА рдХреЛ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ , рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рджрд╛рджреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдереАрдВ? рдХреНрдпрд╛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рд░реВрдк рд╕реЗ рдХреЛрдИ рд╢рдкрде рдкрддреНрд░ рдирд╣реАрдВ рднреЗрдЬрддрд╛ рд╣реИ?


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


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


рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


  • рдкреНрд░рд▓реЗрдЦрди
    • тЬУ рд╣рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЬрд╛рдирддреЗ рд╣реИрдВ
    • тЬЧ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ
    • Classes рд╣рдо рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
    • Types рд╣рдо рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
  • рд╡рд┐рдирд┐рд░реНрджреЗрд╢
    • Least рдХрдо рд╕реЗ рдХрдо рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
      рд▓рд╛рдкрддрд╛ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдпрд╛ рд╕рдмреВрддреЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдо рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдп рд╣рдорд╛рд░реА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
    • Is рд▓реМрдЯрд╛ рд╣реБрдЖ рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡реИрдз рд╕реВрдЪрдХрд╛рдВрдХ рд╣реЛрддрд╛ рд╣реИред
    • тЬЧ рд▓реМрдЯрд╛ рд╣реБрдЖ рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдореВрд▓реНрдп рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
    • Missing рдПрдХ рд▓рд╛рдкрддрд╛ рд╡рд╕реНрддреБ рд╣рдореЗрд╢рд╛ None / Nothing None рд▓реМрдЯрд╛рддреА рд╣реИред
  • рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ
    • тЬУ рдХреЛрдИ рдЯрд╛рдЗрдкреЛ рдпрд╛ рдЧрд▓рдд рдирд╛рдо рдирд╣реАрдВ
    • Ull рдХреЛрдИ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд null рдирд╣реАрдВ
    • тЬУ рддреНрд░реБрдЯрд┐ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ
      рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдлрд╝рдВрдХреНрд╢рди Nothing рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рдорд▓рд╛ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  • рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ
    • тЬУ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛
    • Be рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
    • Effects рдХреЛрдИ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ
    • Ions рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ
      рдореИрдВ рдЕрдкрд╡рд╛рджреЛрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдп - рдирд╣реАрдВред
      рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рдЕрдкрд╡рд╛рдж рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдИрдУ рдореЛрдирдб рдореЗрдВ)ред рдПрдХ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ, рд╣рдореЗрдВ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдлреЗрдВрдХреЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рд╛рд╕реНрдХреЗрд▓ рдЗрд╕ рдЙрдореНрдореАрдж рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╢реБрджреНрдз рдХреЛрдб рд╕реЗ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдП ред
      H рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ, рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдЬреИрд╕реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреА рдЕрдкрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдкрдХрдбрд╝рд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рджреЛрдиреЛрдВ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдереЛрдбрд╝рд╛ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реИред
    • тЬЧ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ
      рд╣рдо рдЕрднреА рднреА рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реВрдиреНрдп рд╕реЗ рд╡рд┐рднрд╛рдЬрдиред
    • тЬЧ рдХреЛрдИ рд╕реНрдерд╛рдпреА рдЪрдХреНрд░ рдирд╣реАрдВ

рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд╛рд╕реНрдХреЗрд▓


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


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


 not :: Bool -> Bool not x = ... 

рдЗрдирдкреБрдЯ True рдпрд╛ False рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрди рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдФрд░ рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ, рдкрд╡рд┐рддреНрд░ рдХрдВрдШреА рдмрдирд╛рдиреЗрд╡рд╛рд▓реЗ рдХреА рд░реЗрддреА! рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ, рд╕рджрд╛ рдЪрдХреНрд░, рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо, рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВред It рд╣рд╛рд▓рд╛рдВрдХрд┐, рдереЛрдбрд╝реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдХрд┐рддрдирд╛ рд╕рдордп рд╡реНрдпрддреАрдд рд╣реЛрддрд╛ рд╣реИ: рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╣рдо рдПрдХ рдЕрдирдиреНрдд рдЪрдХреНрд░ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдП, рдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рднрд╛рд░реА рд╣реИ? рдЙрд╕реЗ рд░реЛрдХрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ред


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд╣рд╛рд╕реНрдХреЗрд▓ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдХ рдорд╛рди also рднреА рд╣реЛрддрд╛ рд╣реИ (рдЬрд┐рд╕реЗ undefined , error рдпрд╛ рдХреБрдЫ рдЕрд░реНрдереЛрдВ рдореЗрдВ рдЕрдирдВрдд рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рд╣рд╛рд╕реНрдХреЗрд▓рд┐рд╕реНрдЯ рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдЖрдБрдЦреЗрдВ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред


Extracurricular рдкрдврд╝рдирд╛: рдХреЗрд╡рд▓ рдЪрд╛рд░ рдмрд┐рд▓рд┐рдпрди рдлрд╝реНрд▓реЛрдЯреНрд╕ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╕рднреА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ!


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


рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдкреВрд░рдХ рд╣реИрдВ рдФрд░ рд╣рд╛рд╕реНрдХреЗрд▓ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХреБрдЫ рдЫреЗрджреЛрдВ рдХреЛ рдкреНрд▓рдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдпрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХреЛрдб рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИред


рд╕реА


 /* C    ,    int */ int x(int *y, size_t n, int z) { /* 10000    */ } 

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


рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рддрддреНрд╡ рдирд╣реАрдВ рдорд┐рд▓рдиреЗ рдкрд░ рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рд▓реМрдЯреЗрдЧрд╛ред рд╣рдореЗрдВ рдкрд░рдВрдкрд░рд╛ рдпрд╛ рдкреНрд░рд▓реЗрдЦрди рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ -1 рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред


рд╣рдо рддрд░реНрдХреЛрдВ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЗрд╕ рддрд░рд╣ рд╣рдо рдПрдХ рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЛ рдЗрд╕ рддрд░реНрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдкрдврд╝реЗ рдЧрдП рд╣реИрдВ рдФрд░ рдХреМрди рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рджреЗрдЦрдХрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрдирд╛ рдХрдард┐рди рд╣реИред


 /*   ,   out- */ error_t x(int *y, size_t n, int z, size_t *w) { /* 10000    */ } 

рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рд╣реА рд╣рдореЗрдВ рдЗрддрдиреА рд╕рд╛рд░реА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рд╣рдореЗрдВ рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рд╣рд╛рд╕реНрдХреЗрд▓ рдорд╛рдорд▓реЗ рд╕реЗ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред


рдЗрджрд░рд┐рд╕


 x : Eq x => List x -> x -> Maybe Int xyz = ... 

рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде, рд╣рдо рдЕрдзрд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЪреБрдирд╛рд╡ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред


 %default total x : Eq x => Vect nx -> x -> Maybe (Fin n) xyz = ... 

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ "рдореБрдЭреЗ рдЖрдХрд╛рд░ n рдХреА рд╕реВрдЪреА рдФрд░ рдХреБрдЫ рдореВрд▓реНрдп рджреЗрдВ, рдФрд░ рдореИрдВ рдЖрдкрдХреЛ n рдпрд╛ n рд╕реЗ рдХрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░ рджреВрдВрдЧрд╛ред" рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реАрдорд╛ рд╕реЗ рдкрд░реЗ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреБрд▓ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдЯрд╛рдЗрдорд░ рдиреЗ рдЬрд╛рдВрдЪ рдХреА рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдерд╛рдпреА рдЪрдХреНрд░ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред


рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


  • рд╡рд┐рдирд┐рд░реНрджреЗрд╢
    • Least рдХрдо рд╕реЗ рдХрдо рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
    • Returned рд▓реМрдЯрд╛ рд╣реБрдЖ рдЗрдВрдбреЗрдХреНрд╕ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдЗрдВрдбреЗрдХреНрд╕ рд╣реЛрддрд╛ рд╣реИ
    • тЬЧ рд▓реМрдЯрд╛ рд╣реБрдЖ рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдореВрд▓реНрдп рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
    • Ing рдорд┐рд╕рд┐рдВрдЧ рдЖрдЗрдЯрдо рд╣рдореЗрд╢рд╛ None Nothing None / Nothing None рд▓реМрдЯрд╛рддрд╛ рд╣реИ
  • рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ
    • тЬУ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛
    • Be рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
    • Effects рдХреЛрдИ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ
    • Ions рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ
    • тЬУ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ
    • тЬУ рдХреЛрдИ рд╕реНрдерд╛рдпреА рдЪрдХреНрд░ рдирд╣реАрдВ

рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рдЗрджрд░реАрд╕


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


 ex : x [1, 2, 3] 2 = Just 1 ex = Refl 

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рдЕрдЬреАрдм рдкреНрд░рдХрд╛рд░ рдХрд╛ x [1, 2, 3] 2 = Just 1 ред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рд╕рдлрд▓ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдкрд░ рдХреЛ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ x [1, 2, 3] 2 рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ Just 1 рдмрд░рд╛рдмрд░ рд╣реИред SinceрдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмреВрдд рддреБрдЪреНрдЫ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЯрд┐рдкрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдЪрд┐рд╣реНрди рдХреЗ рджреЛрдиреЛрдВ рдХрд┐рдирд╛рд░реЛрдВ рдкрд░ рд╢рд░реНрддреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЬреЛ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреА рд╕рдордЧреНрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рдкрд░рд┐рдорд┐рдд рд╕рдордп рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЬреЛ рдЪрд░реНрдЪ-рд░реЛрд╕реЗрд░ рдХреЗ рдХрд╛рд░рдг рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░реЗрдЧрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдХреЛрдИ рд╕рдорд╛рдирддрд╛ рдХреА Refl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ Refl '


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕реНрддрд░ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛ рдерд╛ред


рд╕рдмреВрдд рдХреЗ рд╕рд╛рде рдЗрджрд░реАрд╕


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


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


 --      Eq  DecEq x : DecEq a => Vect na -> (y : a) -> Maybe (Fin n) xyz = ... --    ,       `x` findIndexOk : DecEq a => (y : Vect na) -> (z : a) -> case xyz of Just i => index iy = z Nothing => Not (Elem zy) findIndexOk yz = ... 

Type findIndexOk рдХреЛ "рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП" рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рджрдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдгрд╛рдпрдХ рддреБрд▓рдирд╛ ( DecEq ) рд╣реИ, рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ y рддрддреНрд╡реЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╡реЗрдХреНрдЯрд░ y рдФрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ z рдкреНрд░рдХрд╛рд░ z : рдпрджрд┐ xyz рд░рд┐рдЯрд░реНрди рд╕реВрдЪрдХрд╛рдВрдХ i , рддреЛ рдпрд╣ рд╕реВрдЪрдХрд╛рдВрдХ z рдЭреВрда рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ xyz Nothing рджреЗрддрд╛ рд╣реИ, рддреЛ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдРрд╕рд╛ рдХреЛрдИ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИред "


тЯжрдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ рдореВрд▓ рд▓реЗрдЦ рдХрд╛ рд▓реЗрдЦрдХ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдХрдордЬреЛрд░ рд╣реИред


рдЕрдм рд╣рдо рд╕рдм рдХреБрдЫ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ! рдиреБрдХрд╕рд╛рди рдХреНрдпрд╛ рд╣реИрдВ? рдЦреИрд░, рдпрд╣ рд╕рдм рд╕рдмреВрдд рд▓рд┐рдЦрдирд╛ рдХрд╛рдлреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рддреБрд▓рдирд╛


рдЕрдЬрдЧрд░рдЕрдЬрдЧрд░
рдкрд░реАрдХреНрд╖рдг
рд╣рд╛рд╕реНрдХреЗрд▓рд╣рд╛рд╕реНрдХреЗрд▓
рдкреНрд░рдХрд╛рд░
рд╣рд╛рд╕реНрдХреЗрд▓
рдкреНрд░рдХрд╛рд░
рдкрд░реАрдХреНрд╖рдг
рдЗрджрд░рд┐рд╕рдЗрджрд░рд┐рд╕
рдкрд░реАрдХреНрд╖рдг
рдЗрджрд░рд┐рд╕
рдкреНрд░рдорд╛рдг
рдкреНрд░рд▓реЗрдЦрди
рд╣рдо рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЬрд╛рдирддреЗ рд╣реИрдВтЬЧтЬЧтЬЧтЬУтЬУтЬУтЬУтЬУ
рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИтЬЧтЬУтЬЧтЬЧтЬУтЬЧтЬУтЬУ
рд╣рдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдпреБрдХреНрдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВредтЬЧтЬУтЬЧтЬУтЬУтЬУтЬУтЬУ
рд╣рдо рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдпреБрдХреНрдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВредтЬЧтЬЧтЬЧтЬУтЬУтЬУтЬУтЬУ
рд╡рд┐рдирд┐рд░реНрджреЗрд╢
рдХрдо рд╕реЗ рдХрдо рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИтЬЧтЬУтЬЧтЬЧтЬУтЬЧтЬУтЬУ
рд▓реМрдЯрд╛ рд╣реБрдЖ рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рдорд╛рдиреНрдп рд╣реЛрддрд╛ рд╣реИредтЬЧтЬЧтЬЧтЬЧтЬЧтЬУтЬУтЬУ
рд▓реМрдЯрд╛ рд╣реБрдЖ рд╕реВрдЪрдХрд╛рдВрдХ рд╣рдореЗрд╢рд╛ рдорд╛рдиреНрдп рд╣реЛрддрд╛ рд╣реИредтЬЧтЬЧтЬЧтЬЧтЬЧтЬЧтЬЧтЬУ
рдЧреБрдо рддрддреНрд╡ `рдХреЛрдИ рдирд╣реАрдВ` /` рдХреБрдЫ рдирд╣реАрдВ` рджреЗрддрд╛ рд╣реИтЬЧтЬЧтЬЧтЬЧтЬЧтЬЧтЬЧтЬУ
рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддрд┐рдпрд╛рдБ
рдХреЛрдИ рдЯрд╛рдЗрдкреЛ рдпрд╛ рдЧрд▓рдд рдирд╛рдо рдирд╣реАрдВтЬЧтЬЧтЬУтЬУтЬУтЬУтЬУтЬУ
рдХреЛрдИ рдЕрдЪрд╛рдирдХ `рдЕрд╢рдХреНрдд`тЬЧтЬЧтЬУтЬУтЬУтЬУтЬУтЬУ
рддреНрд░реБрдЯрд┐ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИредтЬЧтЬЧтЬУтЬУтЬУтЬУтЬУтЬУ
рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ
рд╕реНрдореГрддрд┐ рд╕реБрд░рдХреНрд╖рд╛тЬУтЬУтЬУтЬУтЬУтЬУтЬУтЬУ
рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛редтЬЧтЬЧтЬУтЬУтЬУтЬУтЬУтЬУ
рдХреЛрдИ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдирд╣реАрдВтЬЧтЬЧтЬЧтЬУтЬУтЬУтЬУтЬУ
рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВтЬЧтЬЧтЬЧтЬЧтЬЧтЬУтЬУтЬУ
рдХреЛрдИ рдЧрд▓рддреА рдирд╣реАрдВтЬЧтЬЧтЬЧтЬЧтЬЧтЬУтЬУтЬУ
рдХреЛрдИ рд╕реНрдерд╛рдпреА рдЪрдХреНрд░ рдирд╣реАрдВтЬЧтЬЧтЬЧтЬЧтЬЧтЬУтЬУтЬУ

рд░рд╛рдп


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


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

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


All Articles