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

рд▓реЗрдЦреЛрдВ рдХреА рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ, рдореИрдВ рдлрд╝реНрд░рдВрдЯреЗрдВрдб рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░рдерд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореИрдВ рдЙрди рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдЗрди рдкреНрд░рдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред рдпрджрд┐ рдЖрдк рд╡рд┐рд╖рдп рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо "рд╕реБрдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ" рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХреЛрдиреЛрдВ рдореЗрдВ рдбреБрдмрдХреА рд▓рдЧрд╛рдПрдВрдЧреЗред рдореИрдВ рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдмрдбрд╝реЗ рд╕реЗ рдЫреЛрдЯреЗ рддрдХ рдЬрд╛рдПрдВрдЧреЗ, рдпрд╛рдиреА рд╣рдо рдХреНрд▓рд╛рд╕рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рдкрдХреНрд╖реА рдХреА рдирдЬрд░ рд╕реЗ рджреЗрдЦреЗрдВрдЧреЗ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд▓реЗрдЦреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдо рдиреАрдЪреЗ рдЬрд╛рдПрдВрдЧреЗ рдЬрд╣рд╛рдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрднреНрдпрд╛рд╕ рд╣рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд▓рд╛рдн рд▓рд╛рдПрдЧрд╛ред
рддреЛ, рдЪрд▓рд┐рдП рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реБрдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ, рдФрд░ рдпрд╣рд╛рдБ, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореЛрдирд╛рдбреНрд╕ рдФрд░ рдлрд╝рдВрдХреНрд╢рдирд▓рд░реНрд╕ред
рдкрд╣рдЪрд╛рди
рдЬрдм рдЕрдЧрд▓реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдЦреЛрд▓рдирд╛ рдФрд░ UI рдФрд░ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдХреЗ рдмреАрдЪ рдЖрдо рдЬрдореАрди рдорд┐рд▓ рд░рд╣реА рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рдмрд╕ рд╕рднреА рдпреВрдЖрдИ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд░рд╛рдЬреНрдп рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдо рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрддреНрдХреГрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдЗрд╕ рддрд░реАрдХреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкреИрдЯрд░реНрди рд▓рд╛рдпрд╛ рдЬрд╛рдП рдЬреЛ рдпрдерд╛рд╕рдВрднрд╡ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд░реНрдЬрдХ рдХреНрдпрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рд▓рдЧрднрдЧ рд╣рд░ рдЪреАрдЬ рдЬреЛ рдЖрдк рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдХреА рдЧрдИ рдереАред
рд╡рд┐рдХрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдФрд░ рдбрд┐рдЬрд╛рдЗрди рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ, рди рдХреЗрд╡рд▓ рдкреИрдЯрд░реНрди рдмрдирд╛рдП рдЧрдП рдереЗ рдЬреЛ рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдПрдВрдЯреАрдкреИрдЯрд░реНрд╕ рднреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рд░ рддрд░рд╣ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдмреБрд░рд╛ рдЕрднреНрдпрд╛рд╕ рди рдкрдирдкреЗ, рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдпрд╛ рдбрд┐рдЬрд╛рдЗрдирд░ рд╣рдореЗрд╢рд╛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдкреИрд░ рдЬрдорд╛рдиреЗ рд╡рд╛рд▓реЗ рдереЗред рдЬрдм рдХреЛрдИ рдареЛрд╕ рдЙрдкрд╛рдп рдирд╣реАрдВ рд╣реИред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдЬреЛ рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рд╡рд╣ рдпреВрдЖрдИ рддрддреНрд╡ рдХреЗ рд╕рднреА рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдЙрди рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпреВрдЖрдИ рддрддреНрд╡ рд╕реНрдерд╛рдиреАрдп рд╕реНрдерд┐рддрд┐ (рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛) рдФрд░ рджреВрд░рд╕реНрде рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдпрд╛ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрднреА-рдХрднреА рд╕рднреА рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрд╕рдВрдЧрдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред
рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдПрдХ рд╕реБрдкрд░рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рд╣реЛрдВрдЧреЗ - рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╕рд╛рде рд╣реА рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ fp-ts рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдмреНрд░реЗрд░реАред
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрди рддрддреНрд╡реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬреЛ рд╣рдо рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ UI рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо
render
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдХреЛ
рд╕рд╛рдзрд╛рд░рдг рдЖрд╡реЗрджрди рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдПрдХ рдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА, рдЬрд╣рд╛рдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдо рдЗрд╕рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рднрд╛рдЧреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВрдЧреЗред
const renderInitial = (...) => ...; const renderPending = (...) => ...; const renderError = (...) => ... ; const renderSuccess = (...) => ... ; return ( {state.subcribers.foldL( renderInitial, renderPending, renderError, renderSuccess, )} );
рдЙрджрд╛рд╣рд░рдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд░рд╛рдЬреНрдп рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдЗрд╕реЗ (рд╕рдВрджреЗрд╢, рдмрдЯрди, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдпреВрдЖрдИ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг
RemoteData monad
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕реБрдВрджрд░ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рд╣рдо рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкрд░рд┐рдЪрдп рдерд╛, рдЬрд╣рд╛рдБ рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
рдлрдирдХрд╛рд░ рдФрд░ рдореЛрдирд╛рдб
рдЕрдм, рдзреАрд░реЗ-рдзреАрд░реЗ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд╛рдЧреВ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдЦреБрдж рдХреЛ рд╡рд┐рд╕рд░реНрдЬрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░
Functor
рдФрд░
Monad
рдЬреИрд╕реА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ, рдФрд░ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░рдерд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдУрдВ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
"рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдПрдХ рдлрд╝рдирдХрд╛рд░ рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╢реЗрд▓ рд╕реЗ рдорд╛рди рдирд┐рдХрд╛рд▓рдиреЗ, рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╢реЗрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╢реЗрд▓ рдпрд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдПрдХ рдореМрд▓рд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓реНрдпреЛрдВ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЖрд╡реЗрджрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред "рдореИрдВрдиреЗ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рддрдХрдиреАрдХреЛрдВ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдкрд░ рдПрдХ рдЕрджреНрднреБрдд
рдкреБрд╕реНрддрдХ рд╕реЗ рдпрд╣ рдЙрджреНрдзрд░рдг рд▓рд┐рдпрд╛ред рдЖрдЗрдП рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдШрдЯрдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдлрд╝рдирдХрд╛рд░ рдХреНрдпрд╛ рд╣реИред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рд╕реНрддрд░ рдкрд░ рд╢реНрд░реЗрдгреА рд╕рд┐рджреНрдзрд╛рдВрдд рдирд╛рдордХ рдЧрдгрд┐рдд рдХреЗ рдПрдХ рдЖрдХрд░реНрд╖рдХ рдЦрдВрдб рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред
рд╢реНрд░реЗрдгреА рд╕рд┐рджреНрдзрд╛рдВрдд рдЧрдгрд┐рдд рдХреА рдПрдХ рд╢рд╛рдЦрд╛ рд╣реИ рдЬреЛ рдЧрдгрд┐рддреАрдп рд╡рд╕реНрддреБрдУрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░, рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддрд╛ рд╣реИред рд╢реНрд░реЗрдгреА рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдЖрдзреБрдирд┐рдХ рдЧрдгрд┐рдд рдореЗрдВ рдПрдХ рдХреЗрдВрджреНрд░реАрдп рд╕реНрдерд╛рди рд░рдЦрддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬреНрдЮрд╛рди, рддрд░реНрдХ рдФрд░ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рднреМрддрд┐рдХреА рдореЗрдВ рднреА рдЖрд╡реЗрджрди рдкрд╛рдП рдЧрдП рд╣реИрдВредрдПрдХ рд╢реНрд░реЗрдгреА рдореЗрдВ рдЙрди рд╡рд╕реНрддреБрдУрдВ рдФрд░ рддреАрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЙрдирдХреЗ рдмреАрдЪ рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рд╢реНрд░реЗрдгреА рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ:

рддреАрд░реЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдЗрд╕рд▓рд┐рдП рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ
A рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ
B рддрдХ рдХрд╛ рддреАрд░ рд╣реИ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ
B рд╕реЗ
C рддрдХ рдХрд╛ рддреАрд░
рд╣реИ , рддреЛ рдПрдХ рддреАрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛
A рд╕реЗ
C рддрдХ рд╣реИ
ред рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рддреАрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЛ; рдЙрдиреНрд╣реЗрдВ рдЖрдХрд╛рд░рд┐рдХреА рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдлрд╝рдВрдХреНрд╢рди
f
рдЬреЛ рдП рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдмреА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рдлрд╝рдВрдХреНрд╢рди
g
рдЬреЛ рдмреА рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕реАред рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИред рдЖрдк
f
рд╕реЗ
g
рддрдХ рдкрд░рд┐рдгрд╛рдо рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдордиреЗ рд╕рд┐рд░реНрдл рдПрдХ рдирдП рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдП рдФрд░ рд░рд┐рдЯрд░реНрди рд╕реА рд▓реЗрддрд╛ рд╣реИред рдЧрдгрд┐рдд рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХреА рд░рдЪрдирд╛ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рд╕рдВрдХреЗрддрди рдХреЗ рдмреАрдЪ рдПрдХ рдЫреЛрдЯреЗ рд╡реГрддреНрдд рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдЬреА: рдПрдлред рд░рдЪрдирд╛ рдХреНрд░рдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВред
рдЧрдгрд┐рдд рдореЗрдВ, рд░рдЪрдирд╛ рдХреЛ рджрд╛рдИрдВ рд╕реЗ рдмрд╛рдИрдВ рдУрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЬреА тАЬрдПрдл рдХреЛ" рдЬреА рдХреЗ рдмрд╛рдж рдПрдл "рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВред
-тАФ A B f :: A -> B -тАФ B g :: B -> C -тАФ A C g . f
рджреЛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдг рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рд╢реНрд░реЗрдгреА рдореЗрдВ рдПрдХ рд░рдЪрдирд╛ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рд░рдЪрдирд╛ рд╕рд╛рд╣рдЪрд░реНрдп рд╣реИ (рд╕рд╣рдХрд╛рд░рд┐рддрд╛ рд╕рдВрдЪрд╛рд▓рди рдХреА рдПрдХ рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╕рдорд╛рди рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рд╕рд╛рде рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ; рдпрд╣ рдмрд╛рдИрдВ рд╕рд╣рдХрд╛рд░рд┐рддрд╛ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рддреА рд╣реИ, рдЬрд╣рд╛рдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдмрд╛рдИрдВ рд╕реЗ рджрд╛рдИрдВ рдУрд░, рдФрд░ рджрд╛рдИрдВ рд╕реЗ рдмрд╛рдИрдВ рдУрд░ рд╕рдорд░реВрдкрддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдВрдЧрдд рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдмрд╛рдПрдВ-рд╕рд╣рдпреЛрдЧреА рдФрд░ рджрд╛рдПрдВ-рд╕рд╣рдпреЛрдЧреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рддреАрди рдЖрдХрд╛рд░ (рддреАрд░), f, g рдФрд░ h рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдЙрдирдХреЗ рдкреНрд░рдХрд╛рд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ) рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдХреЛрд╖реНрдардХреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЙрдиреНрд╣реЗрдВред рдЧрдгрд┐рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ
h тЧж (g тЧж f) = (h тЧж g) тЧж f = h тЧж g тЧж f
(рдЬ тЧж рдЫ) тЧж рдЪ = рдЬ тЧж рдЬреА тЧж рдЪ - рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдП рдХреЗ рд▓рд┐рдП рдПрдХ рддреАрд░ рд╣реИ, рдЬреЛ рд░рдЪрдирд╛ рдХреА рдПрдХ рдЗрдХрд╛рдИ рд╣реЛрдЧреАред рдпрд╣ рддреАрд░ рдПрдХ рд╡рд╕реНрддреБ рд╕реЗ рд╣реА рд╣реИред рд░рдЪрдирд╛ рдХреА рдПрдХ рдЗрдХрд╛рдИ рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рддреАрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдХрд╛рдИ рдХреА рд░рдЪрдирд╛ рдХрд░рдирд╛, рдЬреЛ рдпрд╛ рддреЛ рдП рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рдХреНрд░рдорд╢рдГ рдП рдкрд░ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рд░рдЪрдирд╛ рдЙрд╕реА рддреАрд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреА рд╣реИред рдХрд┐рд╕реА рд╡рд╕реНрддреБ A рдХреЗ рдЗрдХрд╛рдИ рддреАрд░ рдХреЛ рдЖрдИрдбреАрдП (A рдкрд░ рдЗрдХрд╛рдИ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЧрдгрд┐рддреАрдп рд╕рдВрдХреЗрддрди рдореЗрдВ, рдпрджрд┐ f A рд╕реЗ B рддрдХ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ
f тЧж idA = f
рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХрд▓ рддреАрд░ рдХреЛ рдПрдХ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрд╕ рдЕрдкрдирд╛ рддрд░реНрдХ рджреЗрддрд╛ рд╣реИред
рдЕрдм рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╢реНрд░реЗрдгреА рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рдПрдХ рдлрд╝рдирдХрд╛рд░ рдХреНрдпрд╛ рд╣реИред
рдПрдХ рдлрд╝реЗрдХреНрдЯрд░ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдорд╛рдирдЪрд┐рддреНрд░рдг рд╣реИред рдЗрд╕реЗ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЫреЛрдЯреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдлрдВрдХреНрд╢рдирд▓рд░реНрд╕ рдЫреЛрдЯреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдореЗрдВ рдЖрдХрд╛рд░рд┐рдХреА рд╣реЛрддреЗ рд╣реИрдВред рд╕рднреА рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рд╕рдордЧреНрд░рддрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрдереЛрдВ рдореЗрдВ рдПрдХ рд╢реНрд░реЗрдгреА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдордЧреНрд░рддрд╛ рдПрдХ рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИред -
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ ред
рд╢рд╛рдпрдж рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдирдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬреЛ рдХрд┐ "рдореВрд▓реНрдп рдЬреЛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ" рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред
const compose = <A, B, C>( f: (a: A) => B, g: (b: B) => C, ): (a: A) => C => (a: A) => g(f(a)); // Maybe: type Nothing = Readonly<{ tag: 'Nothing' }>; type Just<A> = Readonly<{ tag: 'Just'; value: A }>; export type Maybe<A> = Nothing | Just<A>; const nothing: Nothing = { tag: 'Nothing' }; const just = <A>(value: A): Just<A> => ({ tag: 'Just', value }); // Maybe: const fmap = <A, B>(f: (a: A) => B) => (fa: Maybe<A>): Maybe<B> => { switch (fa.tag) { case 'Nothing': return nothing; case 'Just': return just(f(fa.value)); } }; // 1: fmap id === id namespace Laws { console.log( fmap(id)(just(42)), id(just(42)), ); // => { tag: 'Just', value: 42 } // 2: fmap f тЧж fmap g === fmap (f тЧж g) const f = (a: number): string => `Got ${a}!`; const g = (s: string): number => s.length; console.log( compose(fmap(f), fmap(g))(just(42)), fmap(compose(f, g))(just(42)), ); // => { tag: 'Just', value: 7 } }
fmap
рд╡рд┐рдзрд┐ рдХреЛ рджреЛ рддрд░рдл рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдПрдХ рд╢реБрджреНрдз рдХрд╛рд░реНрдп рдХреЛ "рдХрдВрдЯреЗрдирд░реАрдХреГрдд" рдорд╛рди рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ;
- рдПрдХ рд╢реБрджреНрдз рдХрд╛рд░реНрдп "рдХрдВрдЯреЗрдирд░ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрдврд╝рд╛" рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрдЧрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдХреЛрд╖реНрдардХ рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рд╣реИрдВ, рддреЛ рд╣рдо
fmap
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
const fmap: <A, B>(f: (a: A) => B) => ((ma: Maybe<A>) => Maybe<B>);
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж:
type Function1<Domain, Codomain> = (a: Domain) => Codomain;
рд╣рдореЗрдВ
fmap
рдХреА рдкрд░рд┐рднрд╛рд╖рд╛
fmap
:
const fmap: <A, B>(f: (a: A) => B) => Function1<Maybe<A>, Maybe<B>>;
рдпрд╣ рд╕рд░рд▓ рдЪрд╛рд▓ рд╣рдореЗрдВ рдПрдХ рдордЬрд╝реЗрджрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ "рдПрдХ рдХрдВрдЯреЗрдирд░ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рд╢реБрджреНрдз рдХрд╛рд░реНрдп рдХреЛ рдмрдврд╝рд╛рдиреЗ" рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реИрдХрд▓реНрдкрд┐рдХ рдиреЗрд╕реНрдЯреЗрдб рдореВрд▓реНрдпреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛рдУрдВ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛; рдбреЗрдЯрд╛ рд╕реВрдЪреА рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░реЗрдВ рдЕрдкрд╡рд╛рдж рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд▓ред
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрдВрдХреНрд╢рдирд▓рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЕрдирдЪрд╛рд╣реЗ рд░реВрдк рд╕реЗ рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВред рдореЛрдирд╛рдбрд░реНрд╕ рдлрдВрдХреНрд╢рдирд▓рд░реНрд╕ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╡реЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рддрд░реНрдХ рдХреЛ рд╕реМрдВрдкрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдлрд╝рдирдХрд╛рд░ рд╕реНрд╡рдпрдВ рд╣реА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдПрдХ рд╢реЗрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рдкреЗрдЯрд╛ рдЬрд╛рдП, рдФрд░ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рдирд╣реАрдВ рд╣реИред
рд╢реЗрд▓ рд╕реЗ рдорд╛рди рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдиреЗрд╕реНрдЯрд┐рдВрдЧ рд╕реЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рддреЗ рд╕рдордп рдПрдХ рд╕рдирдХ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдлрдВрдХреНрд╢рдирд▓рд░реНрд╕ рдХреА рддрд░рд╣, рдореЛрдиреИрдбреНрд╕ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░рдгреЛрдВ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдгрдирд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рд╕рдВрд╕рд╛рдзрд┐рдд рдореВрд▓реНрдп рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдРрд╕реЗ рдореЛрдирд╛рдбреНрд╕ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдмрд┐рдирд╛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рд╡реЗ рд░рдЪрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдирд╛рдбреНрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ рдореЗрдВ рдореЛрдирдбреНрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рддрднреА рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд╕реНрдкрд╖реНрдЯ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛрдВред
рднрд┐рдХреНрд╖реБрдУрдВ рдХреЛ рдмреЗрд╣рддрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрдХрд╛рдИред рдореМрджреНрд░рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ
рдореЛрдирд╛рдбрд┐рдХ рдкреНрд░рдХрд╛рд░ред рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрдЯрд░ рдФрд░ рдЕрдиреНрдп рд╢реНрд░реЗрдгреАрдмрджреНрдз рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рдЗрди рдЧреБрдгреЛрдВ рдХреЗ рдЖрд╡реЗрджрди рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджрд╛рд╣рд░рдгред