рд╡рди
рдпрд╣ рдПрдХ рдЬрдВрдЧрд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдкреЗрдбрд╝ рд╣реИрдВред рдкреВрд░реНрд╡ рдХреА рдУрд░, рд╕реВрд░реНрдп рдХрд╛ рдкреНрд░рдХрд╛рд╢ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред
рдЖрдк рджреВрд░реА рдореЗрдВ рдЧреАрдд рдкрдХреНрд╖реА рдХреА рдЪрд╣рдХрддреА рд╕реБрдирд╛рдИ рджреЗрддреА рд╣реИрдВред
рд╕рд╛рдордЧреНрд░реА:
рдЧреНрд░реАрдЯрд┐рдВрдЧрднрд╛рдЧ 1 - рдЖрдЧреЗрднрд╛рдЧ 2 - рд╡рдирднрд╛рдЧ 3 - рдкреЛрд▓реАрдирд╛рднрд╛рдЧ 4 - рдШрд╛рдЯреА рдХрд╛ рджреГрд╢реНрдпрднрд╛рдЧ 5 - рд╣реЙрд▓рднрд╛рдЧ реи
рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдбрд┐рд╕реНрдХреНрд░рд┐рдорд┐рдиреЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдпрд╛рддрдирд╛ рджреЗрдВрдЧреЗ, рдФрд░ рдпрд╣ рднреА рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдВрдЧреЗ рдХрд┐ рдПрдбреАрдЯреА рдХреНрдпрд╛ рд╣реИред
рдЦреЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЗрд╣рддрд░ рд╕реЛрдЪрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рд╛рд╣рд╕рд┐рдХ рдЦреЗрд▓ рдЬрд╣рд╛рдБ рдЖрдк рдХрд╣реАрдВ рднреА рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдЗрдЯрдо рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЧреИрд░-рдЦрд┐рд▓рд╛рдбрд╝реА рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╛ рдпрд╣ рдЬрд╛рджреВ, рджреБрд╖реНрдЯ рдкреНрд░рд╛рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдерд┐рдпрд╛рд░реЛрдВ, рдХрд╡рдЪ, рд╕реНрдХреНрд░реЙрд▓, рддрд▓рд╡рд╛рд░ рдФрд░ рдзрдиреБрд╖ рдХреЗ рд╕рд╛рде рдПрдХ рджреБрд╖реНрдЯ-рджреБрд╖реНрдЯ рдкрд╛рда рдЦреЗрд▓ рд╣реЛрдЧрд╛? рдпрд╛ рд╢рд╛рдпрдж рд╣рдо quests рдХреЛ рдПрдХ рд▓рд╛ "рд╕реНрдкреЗрд╕ рд░реЗрдВрдЬрд░реНрд╕ -2" рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЦреИрд░, рдЦреЗрд▓ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рд╣рдо рдЬрд╝реЛрд░реНрдХ рдХреЗ рдирдХреНрд╢реЗрдХрджрдо рдкрд░ рдЪрд▓реЗрдВрдЧреЗ, рдФрд░ рдПрдХ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рдЪреБрдиреЗрдВрдЧреЗ - рдЕрджреНрднреБрдд рд▓рд╛рдЗрдЯрд╣рд╛рдЙрд╕ рдПрдирдПрдл рдЦреЛрдЬред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдореИрдВ рдЙрд╕реЗ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред
QuestMain.hs рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЧрдИ рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рдорд┐рдЯрд╛ рджреЗрдВред рдЕрдЧрд░ рдпрд╣ рдзреЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрдВ рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА (git, svn) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рдореИрдВ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ, рдХрд┐ рдЖрдк рдЧрд▓рддреА рд╕реЗ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ! рдЬрдм рдЪрд╛рд╣реЗрдВ рдХреЛрдб рдХрд╛ рдХреЛрдИ рднреА рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦрд╛ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд╕реНрдХреЗрд▓ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдЦреБрд╢реА рд╣реИ, рдФрд░ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рднреА рдмреЛрдЭ рдкрд░ рдирд╣реАрдВ рд╣реИред рд╣рд╛рдВ, рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рднреА рдЖрдирдВрджрджрд╛рдпрдХ рд╣реЛ рд╕рдХрддреА рд╣реИ! рдЖрдк рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЛрдб рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдЕрдВрдд рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реЛ, рдФрд░ рдЬрдм рдпрд╣ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ! рдЧрд▓рддрд┐рдпреЛрдВ рдХрд╛ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛ рдЖрдкрдиреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛, рдмрд╕ рдпрд╣рд╛рдБ рдЕрд╕рдВрднрд╡ рд╣реИред рддрд░реНрдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЦреЛрдЬрдирд╛ рдФрд░ рдареАрдХ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдпрд╣ рдФрд░ рднреА рдЖрд╕рд╛рди рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реМ рдпрд╛ рджреЛ рд╕рдВрдкрд╛рджрди рд╡рд╛рд▓реЗ рд▓реЙрдЧ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдХрд┐ рдЖрдкрдиреЗ рдХреИрд╕реЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд░рд╛рд╕реНрддреЗ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рдгрд╛рдо рдЖрдкрдХреЛ рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдкрд┐рдЫрд▓реА рдмрд╛рд░, рд╣рдо рдПрдХ рдРрд╕реЗ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рде рдЖрдП рдереЗ рдЬреЛ рдЕрдкрдиреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рд╕реА рд╕реНрдерд╛рди рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрддрд╛ рд╣реИ:
рд╡рд░реНрдгрдирд╕реНрдерд╛рди locNumber = рдХреЗрд╕ locNumber of
1 -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
2 -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдЕрдиреНрдпрдерд╛ -> "рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рдиред"
рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ? рдЖрдЗрдП рдЕрдЯрдХрд▓реЗрдВ рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдкреВрд░реНрдгрд╛рдВрдХ (рдкреВрд░реНрдгрд╛рдВрдХ) рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рд╕реНрдЯреНрд░рд┐рдВрдЧ) рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
рд╡рд░реНрдгрди рд╡рд░реНрдгрди :: рдкреВрд░реНрдгрд╛рдВрдХ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдареАрдХ рд╣реИ, рдпрд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдорд╛рдорд▓рд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЬрдм рддрдХ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрдХрд▓рдХ рд╕реЛрдЪреЗрдВрдЧреЗ рдХрд┐ рд▓реЛрдХреЗрдирдореНрдмрд░ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░, рдиреНрдпреВрдо рдХрд╛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛рдПрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╣рдо рдЗрддрдиреА рд╕рдВрдЦреНрдпрд╛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди 2.0
"рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди реи.рем
"рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рдиред"
рдЬрдм рддрдХ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ, рддрдм рддрдХ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдХрд▓рдХ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ:
* рдореБрдЦреНрдп: рдЯрд╛рдЗрдк рд╡рд░реНрдгрди
рд╡рд░реНрдгрдирд╕реНрдерд╛рди : :: a => a -> [ рдЪрд╛рд░ ]
рд╣рдореНрдо, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ "рд╕рдВрдЦреНрдпрд╛ рдП => рдП -> [рдЪрд╛рд░]" рд░рд╣рд╕реНрдпрдордп рдФрд░ рднрдпрд╛рд╡рд╣ рд╣реИред рдЙрд╕реЗ рдЬрд╛рдиреЗ рджреЛ! рд╣рдореЗрдВ рдЕрднреА рддрдХ рдЗрди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рдордиреЗ рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ, рд╕реНрдЯреНрд░рд┐рдВрдЧ:
рд╡рд░реНрдгрди рд╡рд░реНрдгрди :: рдкреВрд░реНрдгрд╛рдВрдХ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╡рд░реНрдгрдирд╕реНрдерд╛рди locNumber = рдХреЗрд╕ locNumber of
1 -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
2 -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдЕрдиреНрдпрдерд╛ -> "рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рдиред"
рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
* рдореБрдЦреНрдп: рдЯреА рд╡рд┐рд╡рд░рдг
рд╡рд░реНрдгрди рд╡рд░реНрдгрди :: рдкреВрд░реНрдгрд╛рдВрдХ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдУрд╣! рдпрд╣реА рдмреЗрд╣рддрд░ рд╣реИред рд▓реЗрдХрд┐рди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдо рдПрдХ рдЕрд╕реНрдерд╛рдпреА-рдмрд┐рдВрджреБ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди реи
"рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди 2.0
< рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ > : 1 : 18 :
( рднрдЧреНрди рдкреВрд░реНрдгрд╛рдВрдХ ) рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ
рд╢рд╛рдмреНрджрд┐рдХ ' 2.0 ' рд╕реЗ рдЙрддреНрдкрдиреНрди
рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░: ( рднрдЧреНрди рдкреВрд░реНрдгрд╛рдВрдХ ) рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдШреЛрд╖рдгрд╛ рдЬреЛрдбрд╝реЗрдВ
...
рд╣рдордиреЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп (Num) рд╕реЗ рдЕрдзрд┐рдХ рдирд┐рдЬреА (Integer) рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ред рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрдб рдЙрдирдХреЗ рд╕рд╛рде рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд░реВрдк рдХреЗ рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ; рдХрднреА-рдХрднреА рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ: рд╣рдо рдкрд╣рд▓рд╛ рддрд░реНрдХ (рд▓реЛрдХреЗрдирдореНрдмрд░) рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ (рдкреВрд░реНрдгрд╛рдВрдХ) рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рджреВрд╕рд░реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд░рд┐рдЯрд░реНрди рдорд╛рди (рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИред рдареЗрд╕ xy рдлрд╝рдВрдХреНрд╢рди рдпрд╛рдж рд░рдЦреЗрдВ? рд╡рд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╣реЛрдЧреА? рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
рдареЗрд╕ :: рдлреНрд▓реЛрдЯ -> рдлреНрд▓реЛрдЯ -> рдлреНрд▓реЛрдЯ
рдареЗрд╕ x y = x * y
рд╕рдордЭреЗ? .. рдкрд╣рд▓рд╛ рдлреНрд▓реЛрдЯ x рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рд╣реИ, рджреВрд╕рд░рд╛ рдлреНрд▓реЛрдЯ y рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рд╣реИ, рдФрд░ рдЕрдВрддрд┐рдо рдлреНрд▓реЛрдЯ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╕рдм рд╢рд░реНрдорд┐рдВрджрдЧреА рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рд▓реЗрдЦрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдФрд░ рдЙрдирдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдгред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдЕрдм рдЕрдиреНрдп рдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдкреНрд░рдХрд╛рд░ рдбреЗрдЯрд╛ рд╡рд┐рд╡рд░рдг рдХреА рдореБрдЦреНрдп рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ, рдпрд╣ рдбреЗрдЯрд╛ рдкрд░ рдПрдХ рдЙрдЪреНрдЪ рдЕрдореВрд░реНрддрддрд╛ рд╣реИред рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдореВрд░реНрдд рдкреНрд░рдХрд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдб рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд╡рд┐рд╖реНрдп рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕рд╛рдордЧреНрд░реА рдФрд░ рд╕рдВрд░рдЪрдирд╛ рд╣реИред рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдлрд┐рд▓рд┐рдВрдЧ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ, рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдПрдХ рдЕрджреНрднреБрдд рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рди рдХреЗрд╡рд▓ рдЧрд╣рд░реА рдФрд░ рдЕрднрд┐рд╡реНрдпрдВрдЬрдХ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЧрдгрд┐рддреАрдп рдЙрдкрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рд╣рд╛рд╕реНрдХреЗрд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрдИ рдмреБрдирд┐рдпрд╛рджреА рдирд┐рд░реНрдорд╛рдгреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреВрд░рдХ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣рд╛рдВ рд╣рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗред рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдкрджрдирд╛рдо рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдпрджрд┐ рдпрд╣ рдХреБрдЫ рдорд╣рд╛рдорд╛рд░реА рд╣реИред рд╢рд╛рдпрдж рдПрдХ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ? рдЖрдЗрдП рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
рд╡рд░реНрдгрдирдХрд░рдг :: рд╕реНрдЯреНрд░рд┐рдВрдЧ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╡рд░реНрдгрдирд╕реНрдерд╛рди locName = case locName of
"рдШрд░" -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
"рдлреНрд░реЗрдВрдбреНрд╕ рдпрд╛рд░реНрдб" -> "рдЖрдк рдЫреЛрдЯреЗ рд▓рдХрдбрд╝реА рдХреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдЕрдиреНрдпрдерд╛ -> "рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рдиред"
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди "рд╣реЛрдо"
"рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
... рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреИрдкреНрд╕ рд▓реЙрдХ рдкрд╕рдВрдж рд╣реИ? рдФрд░ рдЕрдЧрд░ рдпрд╣ рдЕрдЪрд╛рдирдХ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╢рдмреНрдж рдЯрд╛рдЗрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЬрд░рд╛ рд╕реЛрдЪрд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рд┐рд╕реНрдЯреЗрд░рд┐рдХрд▓ рдХреИрдкреНрд╕ рд▓реЙрдХ рд╣реИред рдЖрдк "рд╣реЛрдо" рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рд▓реЗрдХрд┐рди "рд╣реЛрдо" рдорд┐рд▓ рдЧрдпрд╛ред рдлрд┐рд░ рдбрд┐рд╕реНрдХреНрд░рд┐рдорд┐рдиреЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЛ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рдПрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдкреНрд░рд┐рдп рдФрд░ рдорд╛рдпрд╛рд╡реА рдЧрд▓рддреА рд╣реИ рдЕрдЧрд░ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдХреЛрдб рд╣реЛред
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди "hOmE"
"рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рдиред"
рд╣рд┐рд╕реНрдЯреЗрд░рд┐рдХрд▓ рдХреИрдкреНрд╕ рд▓реЙрдХ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмреАрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рд╢рдмреНрдж рдХреЛ рдЕрдкрд░рдХреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреЗрд╕-рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рднреА рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред
рдЕрдкрд░рдХреЗрд╕рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ :: рд╕реНрдЯреНрд░рд┐рдВрдЧ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
UpperCaseString str = ............ - рдХрд┐рд╕реА рддрд░рд╣ рд╣рдо рд╕рднреА рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдмрдбрд╝рд╛ рдХрд░рддреЗ рд╣реИрдВред
рд╡рд░реНрдгрдирдХрд░рдг :: рд╕реНрдЯреНрд░рд┐рдВрдЧ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╡рд░реНрдгрдирд╕реНрдерд╛рди locName = case ( UpperCaseString locName )
"рдЧреГрд╣" -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдлреНрд░рд╛рдЗрдб рдпрд╛рд░реНрдб -> "рдЖрдк рдЫреЛрдЯреЗ рд▓рдХрдбрд╝реА рдХреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдЕрдиреНрдпрдерд╛ -> "рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рдиред"
рдЕрдм рд╣рд┐рд╕реНрдЯреЗрд░рд┐рдХрд▓ рдХреИрдкреНрд╕ рд▓реЙрдХ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ:
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди "рдлреНрд░рд┐рдбрди рдпрд╛рд░реНрдб"
"рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди "рд╣реЛрдореА"
"рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
рд╣рд╛рдБ, рдореИрдВ рддреБрдореНрд╣рд╛рд░реА рдЙрддреНрд╕реБрдХ рдЖрдБрдЦреЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБред UpperCaseString рдлрд╝рдВрдХреНрд╢рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рдирд╣реАрдВ рд╣реИ? рдУрд╣ рдареАрдХ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рдХреБрдЫ рдлрд╝рдВрдХреНрд╢рди, "рдЯреЙрдкрд░" рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╣ рдорд╛рдирдХ рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рд╡рд╣ "рдЪрд╛рд░" рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдЖрдпрд╛рдд рдЪрд╛рд░ - QuestMain.hs рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо рдЪрд╛рд░ рдореЙрдбреНрдпреВрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ
рдЕрдкрд░рдХреЗрд╕рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ :: рд╕реНрдЯреНрд░рд┐рдВрдЧ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдЕрдкрд░рдХреЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ = рдореИрдк рдЯреВрдкрд░ рд╕реНрдЯреНрд░реИрдк
рдореИрдВ рдпрд╣рд╛рдБ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдБ! рдЦреБрдж рдЖрдЧреЗ рдмрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ - рдФрд░ рд╕рдордЭреЗ!
... рдЕрдЪреНрдЫрд╛, рдареАрдХ рд╣реИ, рд░рд╛рдЬреА рд╣реЛ рдЧрдпрд╛ред рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВред рдирдХреНрд╢рд╛ рдлрд╝рдВрдХреНрд╢рди рджреЛ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ: рдЯреЙрдкрд░ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рд╣рдорд╛рд░рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧред рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдп рд╣реИ: рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЯреЙрдкрд░ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд░реЗрдВред рдФрд░ рдХрд┐рди рддрддреНрд╡реЛрдВ рдореЗрдВ рддрд╛рд░ рд╣реЛрддрд╛ рд╣реИ? рд╕рд╣реА, рд╡рд░реНрдгреЛрдВ рд╕реЗ рдмрд╛рд╣рд░ред рдЗрди рд╕рднреА рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЯреЙрдкрд░ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдКрдкрд░реА рдорд╛рдорд▓реЗ рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ (рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдпреЗ рдЕрдХреНрд╖рд░ рд╣реИрдВ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)ред
рдПрдХ рдФрд░ рдЙрдкрд╛рдп рдирд┐рд░рдВрддрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЧрд▓рдд рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╕ рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ!
рдШрд░ :: рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдШрд░ = "рдЧреГрд╣"
рджреЛрд╕реНрдд рдХрд╛ рд╡рд╛рдпрд░реНрдб :: рд╕реНрдЯреНрд░рд┐рдВрдЧ - рдПрдкреЛрд╕реНрдЯреНрд░реЛрдл рд╕рдВрдХреЗрдд (') рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдкрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдВрджрд░ рдФрд░ рдЕрдВрдд рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдорд┐рддреНрд░ рдХрд╛ рд╡рд╛рдпрд░реНрдб = "рдорд┐рддреНрд░ рдХрд╛ рд╡рдЪрди "
рдмрдЧреАрдЪрд╛ :: рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдЙрджреНрдпрд╛рди = "рдЧрд░реНрдбрди"
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди рдШрд░
"рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди рджреЛрд╕реНрдд рдХрд╛ рджреЛрд╕реНрдд
"рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди рдЙрджреНрдпрд╛рди
"рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рдиред"
рд▓реЗрдХрд┐рди рд╕реЛрдЪрд┐рдП: рдРрд╕реЗ рдХрд┐рддрдиреЗ рдФрд░ рдХрд╛рд░реНрдп рд╣реЛрдВрдЧреЗ рдЬрд┐рдирдореЗрдВ рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рджреВрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп, рд▓реБрдХ рдХрдорд╛рдВрдб ("рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдирдЬрд╝рд░ рд░рдЦрдирд╛"), рдЗрд╕ рд╕реНрдерд╛рди рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдХреНрд░рд┐рдпрд╛ ... рд╣рд░ рдмрд╛рд░, рдКрдкрд░реА рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдкрддреНрд░ рдЙрдард╛рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ, рдкреНрд░рд┐рдп, рдорд╣рдВрдЧрд╛ рд╣реИред рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЕрдиреНрдп рддрд░реАрдХреЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЙрдирдХреА рдкрд╣рдЪрд╛рдиред
рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдореЗрдВ, рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЬрдм рд╣рдо рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рддрд╛рд░ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреБрдЫ рдбрд╛рдпрдирд╛рдорд┐рдХреНрд╕ рдХреЛ рд╕реНрдерд┐рд░ рдХреЛрдб рдореЗрдВ рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рдж рдХреЗ рдЪрд░рдгреЛрдВ рдореЗрдВ, рдпрд╣ рдЕрдЪрд╛рдирдХ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдФрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓рдЧрднрдЧ рдХреЛрдб рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ред рд▓реЗрдХрд┐рди рддрдм рдбрд┐рд╕реНрдХреНрд░рд┐рдорд┐рдиреЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд░реВрдк рд╣реЛрдЧрд╛, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рджрд░реНрд╢рди рд╣реЛрдЧрд╛ред рд╡рд┐рд╡рд░рдг рд╡рд░реНрдгрди рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдирдпрд╛ рд╕реНрдерд╛рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ:
рдШрд░ :: рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдШрд░ = "рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
рджреЛрд╕реНрдд рдХрд╛ рд╡рд╛рдпрд░реНрдб :: рд╕реНрдЯреНрд░рд┐рдВрдЧ
рджреЛрд╕реНрдд рдХрд╛ рджрд┐рд▓ = "рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдмрдЧреАрдЪрд╛ :: рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдЙрджреНрдпрд╛рди = "рдЖрдк рдмрдЧреАрдЪреЗ рдореЗрдВ рд╣реИрдВред рдЧрд╛рд░реНрдбрди рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ: рд╕рд╛рдл, рдкрддрд▓рд╛, рдардВрдбрд╛ рдФрд░ рдЧреАрд▓рд╛ред "
рд╡рд░реНрдгрдирдХрд░рдг :: рд╕реНрдЯреНрд░рд┐рдВрдЧ -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╡рд░реНрдгрди рд╕реНрдерд╛рди = рд╕реНрдерд╛рди
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди рдЙрджреНрдпрд╛рди
тАЬрдЖрдк рдмрдЧреАрдЪреЗ рдореЗрдВ рд╣реИрдВред рдЧрд╛рд░реНрдбрди рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ: рд╕рд╛рдл, рдкрддрд▓рд╛, рдардВрдбрд╛ рдФрд░ рдЧреАрд▓рд╛ред "
рдпрд╣реА рд╣реИ, рд╣рдо рд╕реНрдерд╛рди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рд╡рд░реНрдгрди рд╡рд░реНрдгрди рдлрд╝рдВрдХреНрд╢рди рдЗрд╕реЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗрд╕-рдХрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╣рдо рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╣рдЬрд╝рд╛рд░ рдлрд╝рдВрдХреНрд╢рдВрд╕-рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдирд┐рд░рдВрддрд░ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рддрд╛рд░ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИрдВред рдЪреВрдВрдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдФрд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рднреА рд╣реИред рд╣рдордиреЗ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдФрд░ рдПрдХ рд╕реНрдерд┐рд░ рдлрд╝рдВрдХреНрд╢рди рдорд┐рд▓рд╛ред (рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "pi" рдлрд╝рдВрдХреНрд╢рди рднреА рдПрдХ рд╕реНрдерд┐рд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реИ: pi = 3.1415 ....)
* рдореБрдЦреНрдп: рджреЛрд╕реНрдд рдХреА рдУрд░ == "рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдпрд╣ рд╕рдЪ рд╣реИ
* рдореБрдЦреНрдп: рдЯреА рджреЛрд╕реНрддрдпрд╛рд░реНрдб
рджреЛрд╕реНрдд рдХрд╛ рдирд╛рдо :: [ рдЪрд╛рд░ ]
* рдореБрдЦреНрдп: t "рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
"рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред" :: [ рдЪрд╛рд░ ]
рдпрд╣рд╛рдБ [рдЪрд╛рд░] рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рдорд╛рди рд╣реИред рд╡рд╕реНрддреБрддрдГ, [рдЪрд╛рд░] рдкрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдПрдХ рдкрд░реНрдпрд╛рдпред рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ [рдЪрд╛рд░] рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдорд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди "рд╡рд░реНрдгреЛрдВ рдХреА рд╕реВрдЪреА" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ "рд╕реНрдЯреНрд░рд┐рдВрдЧ" рд▓рд┐рдЦрдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╣рдо рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рдХрдИ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдпрд╡рд╛рдЪреА рд╢рдмреНрдж рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рддреЛ, рдореИрдВрдиреЗ adv2game рдореЗрдВ ObjectName рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА) рднреАред ObjectName рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдорд╛рдирд╛рд░реНрдердХ рд╢рдмреНрдж рдЯрд╛рдЗрдк рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ C ++ рдореЗрдВ рдЯрд╛рдЗрдкрдбрд┐рдл рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдкреНрд░рдХрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╛рдо = рд╕реНрдЯреНрд░рд┐рдВрдЧ
рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдЯрд╛рдЗрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ = [ рдЪрд╛рд░ ]
рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЪрд╛рд░ рд╕реЗ рдПрдХ рд╕реВрдЪреА рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ "STRING" рд╡рд░реНрдгреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рдорд╛рди рд╣реИ: ['S', 'T', 'R', 'I', 'N', 'G']ред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рджрд╛рд╣рд┐рдиреЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдХреЛрдИ рднреА рдЗрд╕ рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд▓рд┐рдЦреЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдкрд╛рддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓реАрдХрд░рдг рд╣реИ - "рдЙрджреНрдзреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕"ред
* рдореБрдЦреНрдп : [ 'S' , 'T' , 'R' , 'I' , 'N' , 'G' ]
┬лSTRING┬╗
* рдореБрдЦреНрдп : "рдореИрдВ рдПрдХ" ++ [ 'S' , 'T' , 'R' , 'I' , 'N' , 'G' ] ++ " рд╣реВрдВ ред"
"рдореИрдВ рдПрдХ STRING рд╣реВрдВред"
* рдореБрдЦреНрдп : putStrLn [ 'S' , 'T' , 'R' , '\ n' , 'I' , 'N' , 'G' ]
рдПрд╕рдЯреАрдЖрд░
рдЖрдИрдПрдирдЬреА
* рдореБрдЦреНрдп - [ 'рдПрд╕' , 'рдЯреА' , 'рдЖрд░' , 'рдЖрдИ' , 'рдПрди' , 'рдЬреА' ] == "STRING"
рдпрд╣ рд╕рдЪ рд╣реИ
рдЖрдк рдХреБрдЫ рднреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдкреВрд░реНрдгрд╛рдВрдХ рдХреА рд╕реВрдЪреА [рдкреВрд░реНрдгрд╛рдВрдХ], рддрд╛рд░ рдХреА рдПрдХ рд╕реВрдЪреА [рд╕реНрдЯреНрд░рд┐рдВрдЧ] (рдЬреЛ рдХрд┐ рдЪрд╛рд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реИ), рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдПрдлрдЬреЗ рдореЗрдВ рд╕реВрдЪреА рдореБрдЦреНрдп рд╕рдВрд░рдЪрдирд╛ рд╣реИ, рдФрд░ рд╣рдо рдЕрднреА рднреА рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рд╣рдо рдХрд┐рд╕реА рддрд░рд╣ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ? рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рдо рд╕реЗ рдирд╣реАрдВ, рдЧрд▓рддреА рдХрд░рдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдХрд╛рд╢ рдПрдХ рддрд╛рд░ рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рд╕реНрдерд╛рдпреА рд╣реЛрддрд╛ред рдпрд╣рд╛рдВ:
рд╡рд░реНрдгрди рд╡рд░реНрдгрди :: ????? -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╡рд░реНрдгрди рд╕реНрдерд╛рди = рдХреЗрд╕ рдХрд╛ рд╕реНрдерд╛рди
рдШрд░ -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдорд┐рддреНрд░ рдХрд╛ рд╡рд╛рдпрд░реНрдб -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдЧрд╛рд░реНрдбрди -> "рдЖрдк рдмрдЧреАрдЪреЗ рдореЗрдВ рд╣реИрдВред рдЧрд╛рд░реНрдбрди рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ: рд╕рд╛рдл, рдкрддрд▓рд╛, рдардВрдбрд╛ рдФрд░ рдЧреАрд▓рд╛ред "
рдЕрдиреНрдпрдерд╛ -> "рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рдиред"
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрдиреЛрдВ рдХреЗ рдмрдЬрд╛рдп, рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░реЛрдлрд╝рд┐рдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╣реЛрдо, рдлреНрд░реЗрдВрдбреНрд╕ рд╡рд╛рдпрд░реНрдб, рдЧрд╛рд░реНрдбрди рд╣реЛред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рд╛рд╕реНрдХреЗрд▓ рддрдерд╛рдХрдерд┐рдд рдмреАрдЬреАрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ (ADTs) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЙрдирдХреА рдорджрдж рд╕реЗ, рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдбреЗрдЯрд╛ рдХрд╛ рд╕рд╣рдЬ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмреАрдЬрдЧрдгрд┐рддреАрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд┐рд╕реА рднреА рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдЧрдгрдирд╛, рд╕рдВрдШреЛрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреЛ OOP рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВред ADTs (рд╕рд╛рд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░, рдЬреЛ "ADTs" рднреА рд╣реИрдВ) ADTs рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ ADTs рд╕реНрд╡рдпрдВ ADTs (рдкреБрдирд░рд╛рд╡рд░реНрддреА) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реНрдпрдХреНрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╕реВрдЪреА, рдкреЗрдбрд╝, рд╕реЗрдЯ, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдбреАрдЯреА рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрдгрд┐рддреАрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реНрд╡рдпрдВ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рд╢реБрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рднреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред
QuestMain.hs рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдВ:
рдбреЗрдЯрд╛ рд╕реНрдерд╛рди = рд╣реЛрдо | рджреЛрд╕реНрдд рдХрд╛ рдпрд╛рд░ | рдЙрджреНрдпрд╛рди
рдбреЗрдЯрд╛ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рдирдпрд╛ рдмреАрдЬреАрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВред рд╕реНрдерд╛рди рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдФрд░ рд╕рдорд╛рди рдЪрд┐рд╣реНрди рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реИред рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдЕрд░реНрде рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдм рд╣реИред рд╕рднреА рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдкреНрд░рдерд╛рдЧрдд рд╣реИред рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рддрддреНрд╡реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рд╕рдВрдХреЗрдд рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддреЗ:
рдбреЗрдЯрд╛ рд╕реНрдерд╛рди =
рдШрд░
| Friend'sYard
| рдЙрджреНрдпрд╛рди
рд╕рд╛рдЗрди "|" "рдпрд╛" рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдерд╛рди рдХреЗ рдЪрд░ рдПрдХ рдорд╛рди рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ: рдпрд╛ рддреЛ рд╣реЛрдо, рдпрд╛ рдорд┐рддреНрд░ рдХрд╛ рд╡рд╛рдпрд░реНрдб, рдпрд╛ рдЧрд╛рд░реНрдбрдиред рдЯрд╛рдЗрдк рд▓реЛрдХреЗрд╢рди рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ, рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рд╣рдо рдЕрднреА рднреА рд╕реНрдерд╛рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ "рд╣реЛрдо" рдпрд╛ "рдЧрд╛рд░реНрдбрди" рдЬреИрд╕реЗ рдкреНрд░рдХрд╛рд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред
рд╣рдо рдкреНрд░рд╢реНрдирд╡рд╛рдЪрдХ рдЪрд┐рдиреНрд╣ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рджреЗрддреЗ рд╣реИрдВ:
рд╡рд░реНрдгрди рд╡рд░реНрдгрди :: рд╕реНрдерд╛рди -> рд╕реНрдЯреНрд░рд┐рдВрдЧ
рд╡рд░реНрдгрди рд╕реНрдерд╛рди = рдХреЗрд╕ рдХрд╛ рд╕реНрдерд╛рди
рдШрд░ -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдорд┐рддреНрд░ рдХрд╛ рд╡рд╛рдпрд░реНрдб -> "рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
рдЧрд╛рд░реНрдбрди -> "рдЖрдк рдмрдЧреАрдЪреЗ рдореЗрдВ рд╣реИрдВред рдЧрд╛рд░реНрдбрди рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рджрд┐рдЦрддрд╛ рд╣реИ: рд╕рд╛рдл, рдкрддрд▓рд╛, рдардВрдбрд╛ рдФрд░ рдЧреАрд▓рд╛ред "
рдЕрдиреНрдпрдерд╛ -> "рдЕрдЬреНрдЮрд╛рдд рд╕реНрдерд╛рдиред"
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди рдШрд░
"рдЖрдк рд▓рдХрдбрд╝реА рдХреА рдореЗрдЬ рдкрд░ рдмреАрдЪ рдХреЗ рдХрдорд░реЗ рдореЗрдВ рдЦрдбрд╝реЗ рд╣реИрдВред"
* рдореБрдЦреНрдп : рд╡рд░реНрдгрди рдорд┐рддреНрд░ рдХрд╛ рд╡рд╛рдпрд▓рдб
"рдЖрдк рд▓рдХрдбрд╝реА рдХреЗ рдЫреЛрдЯреЗ рдмрд╛рдбрд╝ рдХреЗ рдкреАрдЫреЗ рд░рд╛рдд рдХреЗ рдмрдЧреАрдЪреЗ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реИрдВред"
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдм рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдкрд░рдХреЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рд░реНрдп рдмреЗрдХрд╛рд░ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВред рдЖрдк рдпрд╛ рддреЛ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ, рдФрд░ рдлрд┐рд░ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред рдЖрдк рдЗрди рддреАрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЗрд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╡рд░реНрдгрдирд╣реЛрдорд▓реЛрдХреЗрд╢рди = рд╡рд░реНрдгрдирд╕реНрдерд╛рди рдЧреГрд╣
рд╡рд░реНрдгрдирдЧрд╛рд░реНрдбрд▓реЛрдХреЗрд╢рди = рд╡рд░реНрдгрдирд▓реЗрдХреНрд╢рди рдЧрд╛рд░рдбреЗрди
рд╡рд░реНрдгрдирдЧрд╛рд░реНрдбрд▓реЛрдХреЗрд╢рди ' = рд╡рд░реНрдгрдирд▓реЛрдХреЗрд╢рди рдЧрд╛рд░рдбреЗрди
* рдореБрдЦреНрдп: рдЖрд░
[ рез рдХрд╛ рез ] рдореБрдЦреНрдп рд╕рдВрдХрд▓рди ( H: \ Haskell \ QuestTutorial \ Quest \ QuestMain ред Hs , рд╡реНрдпрд╛рдЦреНрдпрд╛ )
H: \ Haskell \ QuestTutorial \ рдХреНрд╡реЗрд╕реНрдЯ \ QuestMain ред hs: 15 : 43 :
рджрд╛рдпрд░реЗ рдореЗрдВ рдирд╣реАрдВ: 'garDEN'
H: \ Haskell \ QuestTutorial \ рдХреНрд╡реЗрд╕реНрдЯ \ QuestMain ред hs: 16 : 44 :
рджрд╛рдпрд░реЗ рдореЗрдВ рдирд╣реАрдВ: рдбреЗрдЯрд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ 'рдЧрд╛рд░рдбреЗрди'
рд╡рд┐рдлрд▓ , рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛: рдХреЛрдИ рдирд╣реАрдВ ред
рдЕрдм рдЗрд╕ рдЧрд▓рдд рдХреЛрдб рдХреЛ рдорд┐рдЯрд╛ рджреЗрдВ! .. рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдЧреНрд░реЗрди рдпрд╛ рдЧрд╛рд░рдбреЗрди рдирд╣реАрдВ рд╣реИ! рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЖрдк рдЧрд╛рд░рдбреЗрди рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдЖрдкрдХрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рд╣реИред рдФрд░ рдпрд╣ рд╕рд╣реА рд╣реЛрдЧрд╛: рдЧрд╛рд░рдбреЗрди рдФрд░ рдЧрд╛рд░реНрдбрди рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рд╡реИрд╕реЗ, рдХреЛрдИ рднреА рдЖрдкрдХреЛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо рд╣реИ; рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ:
рдбреЗрдЯрд╛ рд╕реНрдерд╛рди =
рд╕реНрдерд╛рди - рдпрд╣ рд╕рд╣реА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВред
| рдШрд░
| Friend'sYard
| рдЙрджреНрдпрд╛рди
рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рд╣рд╛рд╕реНрдХреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╕реНрдерд╛рди рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдХрд╣рд╛рдВ рдПрдХ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдпреЗ рдЬрдЧрд╣реЗрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдирд╣реАрдВ рдХрд╛рдЯрддреАрдВред ("рдкреНрд░рдХрд╛рд░ рдФрд░ рдЙрдирдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рд╡рд┐рднрд┐рдиреНрди рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред")
рдЖрдЗрдП рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреНрдпрд╛ рд╣реЛрдВрдЧреЗред
- рдХрдорд╛рдВрдб рд╡реЙрдХ рдпрд╛ рдЧреЛ рдкрд░ рдХрд╣рд╛рдВ рдЬрд╛рдПрдВред
рдбреЗрдЯрд╛ рджрд┐рд╢рд╛ = рдЙрддреНрддрд░ | рджрдХреНрд╖рд┐рдг | рдкрд╢реНрдЪрд┐рдо | рдкреВрд░реНрд╡
- рдЦрд┐рд▓рд╛рдбрд╝реА рдХрд╛рд░реНрд░рд╡рд╛рдИред
рдбреЗрдЯрд╛ рдПрдХреНрд╢рди = рджреЗрдЦреЛ | рдЬрд╛рдУ | рдЗрдиреНрд╡реЗрдВрдЯрд░реА | рд▓реЗ рд▓реЛ | рдЧрд┐рд░рд╛ | рдЬрд╛рдВрдЪ рдХрд░рдирд╛ | рдЫреЛрдбрд╝реЛ | рдмрдЪрд╛рдУ | рд▓реЛрдб | рдирдИ
рд╣рдо рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЦреИрд░, рдЕрднреА рддрдХ рдЗрддрдирд╛ рдирд╣реАрдВред рд╣рдо рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реНрд╕ рдХреА рддреБрд▓рдирд╛ рднреА рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
* рдореБрдЦреНрдп - рдЙрддреНрддрд░ == рдЙрддреНрддрд░
< рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ > : 1 : 7 :
( Eq рджрд┐рд╢рд╛ ) рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ
' == ' рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЙрддреНрдкрдиреНрди
рд╕рдВрднрд╛рд╡рд┐рдд рдлрд┐рдХреНрд╕: ( Eq рджрд┐рд╢рд╛ ) рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рдШреЛрд╖рдгрд╛ рдЬреЛрдбрд╝реЗрдВ
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ: рдЙрддреНрддрд░ == рдЙрддреНрддрд░
'рдЗрдЯ' рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореАрдХрд░рдг рдореЗрдВ: рдпрд╣ = рдЙрддреНрддрд░ == рдЙрддреНрддрд░
рджреБрднрд╛рд╖рд┐рдпрд╛ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ рджрд┐рд╢рд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдВред рдЬреИрд╕реЗ, рдХреНрдпрд╛ рдЖрдк рдСрдкрд░реЗрд╢рди "==" рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдлрд┐рд░ рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рддреБрд▓рдирд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдкрд░рд┐рд╡рд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ!
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╡рд╣ рдЖрдкрдХреЛ Eq рдкреНрд░рдХрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рджрд┐рд╢рд╛ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред Eq рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд▓рди "==" рдФрд░ "/ =" рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдм рднреВрд▓ рдЬрд╛рдУ рдХрд┐ рдЗрд╕ рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИред рдЯрд╛рдЗрдк рдХреНрд▓рд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИред
рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рддреБрд▓рдиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬрд╛рджреВ рд╢рдмреНрджреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИ рдкрд░рд┐рднрд╛рд╖рд╛:
рдбреЗрдЯрд╛ рджрд┐рд╢рд╛ =
рдЙрддреНрддрд░
| рджрдХреНрд╖рд┐рдг
| рдкрд╢реНрдЪрд┐рдо
| рдкреВрд░реНрд╡
рд╡реНрдпреБрддреНрдкрдиреНрди ( рдЗрдХ ) - рдмрд╛рдПрдВ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рдПрдХ рдЗрдВрдбреЗрдВрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬреЛ рдЬрд╛рджреБрдИ рд╢рдмреНрдж рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рддреБрд▓рдирд╛ рдСрдкрд░реЗрд╢рди (рдЙрдзрд╛рд░) рд▓реЗрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ Eq
рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА
рд╢реНрд░реЗрдгреА рдореЗрдВ рдЖрддрд╛ рд╣реИ ред рдФрд░ рдпрд╣ рдСрдкрд░реЗрд╢рди рд╣рдорд╛рд░реЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкреЗрдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛:
* рдореБрдЦреНрдп - рдЙрддреНрддрд░ == рдЙрддреНрддрд░
рдпрд╣ рд╕рдЪ рд╣реИ
* рдореБрдЦреНрдп : рдЙрддреНрддрд░ / = рдЙрддреНрддрд░
рдЭреВрдард╛
* рдореБрдЦреНрдп = рдЙрддреНрддрд░ == рджрдХреНрд╖рд┐рдг
рдЭреВрдард╛
рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ! рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдмрд░рд╛рдмрд░" рдФрд░ "рдмрд░рд╛рдмрд░ рдирд╣реАрдВ" рд╕рдВрдХреЗрдд рд╣реИрдВред рд╣рдорд╛рд░реЗ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рднреА рдРрд╕рд╛ рд╣реА рдХрд░реЗрдВ - рдПрдХреНрд╢рди рдФрд░ рдбрд╛рдпрд░реЗрдХреНрд╢рдиред рдХрд╛рдо рдореЗрдВ рдЖ рдЬрд╛рдУ!
рд╡реНрдпреБрддреНрдкрдиреНрди (рдЗрдХ) рдЬрд╛рджреВ рдХреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХрдИ рдЬрд╛рджреВ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рдЖрдкрдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреБрдЫ рдФрд░ рдмрдирд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдЗрдП рд╣рдо рдЪрдорддреНрдХрд╛рд░реЛрдВ рдХреЛ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдкрд░ рдЫреЛрдбрд╝ рджреЗрдВред рдЖрдЬ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╡рд░реНрдгрди рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рде рд╕рддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо ADT рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдиреЗрдВрдЧреЗред
рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ:
рд╡рд╛рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЖрдУ - рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рдмреАрдЪ рдпрд╛рддреНрд░рд╛ рдлрд╝рдВрдХреНрд╢рдиред рдпрд╣ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ: рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди (рд╕реНрдерд╛рди) рдФрд░ рджрд┐рд╢рд╛ (рджрд┐рд╢рд╛), рдФрд░ рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рд╕реНрдерд┐рдд рдПрдХ рдирдпрд╛ рд╕реНрдерд╛рди рджреЗрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдЧ рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рд╣реЛрдо:
рдЙрддреНрддрд░ - рдЧрд╛рд░реНрдбрди
рджрдХреНрд╖рд┐рдг - рдорд┐рддреНрд░ рдХреА рд╡рд╛рдпрд░реНрдб
рдкреВрд░реНрд╡ - рдШрд░
рдкрд╢реНрдЪрд┐рдо - рдШрд░
рдЧрд╛рд░реНрдбрди:
рдЙрддреНрддрд░ - рдорд┐рддреНрд░ рдХреА рд╡рд╛рдпрд░реНрдб
рджрдХреНрд╖рд┐рдг - рдШрд░
рдкреВрд░реНрд╡ - рдмрдЧреАрдЪрд╛
рдкрд╢реНрдЪрд┐рдо - рдЙрджреНрдпрд╛рди
Friend'sYard:
рдЙрддреНрддрд░ - рдШрд░
рджрдХреНрд╖рд┐рдг - рдмрдЧреАрдЪрд╛
рдкреВрд░реНрд╡ - рдорд┐рддреНрд░ рдХрд╛ рд╡рд╛рдпрд░реНрдб
рдкрд╢реНрдЪрд┐рдо - рдорд┐рддреНрд░ рдХреА рд╡рд╛рдпрд░реНрдб
рдЗрд╕ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ ред
рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛, рд╕рдВрджрд░реНрднреЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА
рдЧреНрд░реАрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ