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

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдБ рдЕрд▓рдЧ рд╣реИрдВред рдХреБрдЫ рдореЗрдВ рдХрд╛рдлреА рдХрдо рдкреНрд░рд╡реЗрд╢ рд╕реАрдорд╛ рд╣реИред рдЕрдиреНрдп рд▓реЛрдЧ рджреВрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдкрд╛рд▓рди рдХреЛ рдбрд░рд╛рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреА рдЪрддреБрд░рд╛рдИ рдФрд░ рдкрд░рд╛рдХрд╛рд╖реНрдард╛ рд╕реЗ рднрдпрднреАрдд рдХрд░рддреЗ рд╣реИрдВ, рдХрдерд╛ рдХреА рдЕрддреНрдпрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдпрд╛ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреА рдЬрдЯрд┐рд▓рддрд╛ред рдРрд╕реА рднрд╛рд╖рд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддрд╛рдХрд┐ рд╡реЗ рдЗрд╕ рддрд░рд╣ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рд╕рдлрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЗ рд╕реЗ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рд╕рдЪрдореБрдЪ рдЕрдВрджрд░ рдмрд╛рд╣рд░ рдХрд░ рд╕рдХреЗрдВред рдХреБрдЫ рднрд╛рд╖рд╛рдПрдВ рдХреЗрд╡рд▓ рд╕рд░рд▓ рджрд┐рдЦрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЧрдгрд┐рдд, рд▓реИрдореНрдмреНрдбрд╛ рдХреИрд▓рдХреБрд▓рд╕ рдФрд░ рд╢реНрд░реЗрдгреА рд╕рд┐рджреНрдзрд╛рдВрдд рд╕реЗ рдПрдХ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рдордЬрдмреВрдд рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ...
рддреЛ, рд╕реНрдорд╛рд▓рдЯрд╛рдХ рдПрдХ рд╕рд░рд▓ рднрд╛рд╖рд╛ рд╣реИред рдПрдХ рд╕рд░рд▓ рднрд╛рд╖рд╛ рди рдХреЗрд╡рд▓ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдЕрдкреНрд░рд╕реНрддреБрдд рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рднреА рд╣реИред рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ, рд▓реЗрдЦрдХ рдиреЗ рд╢реБрд░реВ рдореЗрдВ рдмрдЪреНрдЪреЛрдВ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдорд╛рд▓рдЯрд╛рдХ рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдПрдХ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реБрдЖред рдмрдЪреНрдЪреЗ рдкреАрдПрдЪрдкреА рдФрд░ рдмреЗрд╕рд┐рдХ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛ рдЕрдм рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рдлреИрд╢рдиреЗрдмрд▓ рд╣реИ?)ред рдЦреИрд░, рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдЕрднреНрдпрд╛рд╕ рджреНрд╡рд╛рд░рд╛ рдкреБрд╖реНрдЯрд┐ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП, рдЙрдкрд░реЛрдХреНрдд рдереАрд╕рд┐рд╕ рдХреЗ рд╕рдорд░реНрдерди рдореЗрдВ, рдЕрдм рд╣рдо рднрд╛рд╖рд╛ рдХреА рдкреНрд░рдореБрдЦ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдкрд░рд┐рдЪрдп рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдо рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рд╡рд╕реНрддреБрдУрдВ рдХреА рджреБрдирд┐рдпрд╛
рдЬрд╛рд╡рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдУ, рд╕реА ++ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдУред
рд╕рдм рдХреБрдЫ рднреВрд▓ рдЬрд╛рдУ рдЬреЛ рддреБрдореНрд╣реЗрдВ рд╕рд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИредрд╡рд╛рдХреНрдпрд╛рдВрд╢ "рднрд╛рд╖рд╛ X рдореЗрдВ, рд╕рдм рдХреБрдЫ рдПрдХ рд╡рд╕реНрддреБ рд╣реИ" рдЗрддрдирд╛ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреА рдХреНрд▓рд┐рдЪ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛ рд╕реНрдорд╛рд▓рдЯрд╛рдХ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреА рдкреВрд░реА рдЧрд╣рд░рд╛рдИ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рджрд░рдЕрд╕рд▓, рд╕реНрдорд╛рд▓рдЯрд╛рдХ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рд╕рдВрдЦреНрдпрд╛рдПрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдЙрдкрдпреЛрдЧреА рдЕрдкрд╡рд╛рдж рд╣реИ), рд╕рд░рдгрд┐рдпрд╛рдВ - рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХрд╛ рдЕрдкрдирд╛ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИред рдЬреЛ (рдЖрд╢реНрдЪрд░реНрдп!) рднреА рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рдФрд░ рд╣рд╛рдВ, рдЗрд╕рдХреА рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рднреА рд╣реИ, рдЬреЛ рдПрдХ рд╡рд╕реНрддреБ рднреА рд╣реИ, рдЖрджрд┐ред рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЗ рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВред рд╡рд┐рдзрд┐ bytecodes - рдареАрдХ рд╣реИ, рдЖрдк рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рддрдерд╛рдХрдерд┐рдд рднрд╛рд╖рд╛ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рднреА рдмреНрд▓реЙрдХ рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдк рдПрдХ рджреЛрд╕реНрддрд╛рдирд╛ рддрд░реАрдХреЗ рд╕реЗ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд╣ рдЖрдкрдХреЛ рд╡рд╣ рд╕рдм рдХреБрдЫ рдмрддрд╛рдПрдЧрд╛ рдЬреЛ рд╡рд╣ рдЬрд╛рдирддрд╛ рд╣реИред
LittleSmalltalk рдХреА рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рд╡рд░реНрдгрди рдореЗрдВ рдРрд╕реА
рдЕрджреНрднреБрдд рд╕реНрддреЛрддреНрд░рд┐рдХ
рдЬрдЧрд╣ рд╣реИ :
name subclassOf instanceOf Object MetaObject nil Class MetaClass Object MetaObject Class Class MetaClass Class MetaObject

рдпрд╣ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐:
- рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдЯрд╛рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ рдФрд░ рд╢реВрдиреНрдп рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ (рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдиреЛрдХреНрд╕рд┐рд╕реНрдЯреЗрдВрд╕ рд╕реЗ рдЖрдП рд╣реИрдВ)
- рдХреНрд▓рд╛рд╕ рдХреНрд▓рд╛рд╕ рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ рдФрд░ рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг (рд╕рднреА рд╡рд░реНрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рд╣реИрдВ)
- рдХреНрд▓рд╛рд╕ рдореЗрдЯрд╛рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг (рдЙрд╣ ...)
- рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕ рдХреНрд▓рд╛рд╕ рдореЗрдЯрд╛рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рдЙрдкрд╡рд░реНрдЧ рд╣реИ (рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕ рднреА рдХреНрд▓рд╛рд╕реЗрд╕ рд╣реИрдВ)
- рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рджреЗрдВ: рд▓рд┐рдЯрд┐рд▓ рд╕реНрдорд╛рд▓рдЯрд╛рдХ рдореЗрдВ рдХреЛрдИ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИред
рдорд╕реНрддрд┐рд╖реНрдХ рд╡рд┐рд╕реНрдлреЛрдЯ? рд╣рд╛рдБред рд▓реЗрдХрд┐рди рдкреВрд░реЗ рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдпрд╣ рдПрдХрдорд╛рддреНрд░ рд╕реНрдерд╛рди рд╣реИ рдЬреЛ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдЫреЛрдЯреЗ рдкрд╛рдЧрд▓рдкрди рдХреА рдХреАрдордд рдкрд░ рдорд╣рд╛рди рдЕрд╡рд╕рд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕ рдЬрдЧрд╣ рдХреЛ рдкрд╛рдардХ рдХреЛ рдбрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕реНрдореЙрд▓рдЯреЙрдХ рдореЗрдВ рддрд╛рдУрд╡рд╛рджреА рдкреНрд░рддреАрдХ "рдпрд┐рди рдФрд░ рдпрд╛рдВрдЧ" рдЬреИрд╕реА рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╡рд╕реНрддреБрдПрдВ, рдЕрдВрддрд░реНрд╡рд┐рд░реЛрдзреА рд╕рдВрд╕реНрдерд╛рдПрдВ рд╣реИрдВред
рд╕рд╛рджрдЧреА рдХреЗ рд╕рд╡рд╛рд▓ рдкрд░ рд▓реМрдЯрддреЗ рд╣реБрдП, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрд╕рдВрдЧрддрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдФрд░ 99% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрддрд╛ (рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛)ред рд╢реЗрд╖ рдкреНрд░рддрд┐рд╢рдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдЧреНрд░рдВрдереЛрдВ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдФрд░ рдкрдврд╝рдиреЗ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред
рдЫрд╡рд┐

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

рд╕рдВрджреЗрд╢ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛
рд╕реНрдореЙрд▓рдЯреЙрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЫрд╡рд┐ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдо рд╣реИред рд╕реНрд░реЛрдд рдкрддреНрд░рдХ рдХрд╛ рдХреЛрдИ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдкрд╛рджрди рдирд╣реАрдВ рд╣реИред рдмрд▓реНрдХрд┐, рдЗрд╕реЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдЖрдИрдбреАрдИ рдореЗрдВ рдХрд╛рдо рд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдзрд╛рд░ рдЕрднреА рднреА рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╡рд╕реНрддреБрдУрдВ рдХреА рдмрд╛рддрдЪреАрдд рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрд╕рдХреЗ рдкреВрд░реНрд╡рдЬ
рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╣реБрдП рдЙрд╕реЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВред рдПрдХ рдирдИ рд╡рд┐рдзрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрдХреНрд╖рд╛ рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЕрд░реНрде рд╕реЗ рднрд░ рджреЗрддреЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдПрдХ рд╡рд┐рдзрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдкреЙрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдХреЛрдИ рдкреАрдЫреЗ-рдкреАрдЫреЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдЬрд╝рд┐рд╢реЗрдВ, рджреЗрд╢реА рдХреЛрдб рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдпрд╛ рдЕрдиреНрдп рд╡реНрдпрд╡рд╕реНрдерд╛рдПрдБ рд╣реИрдВред рд╕рдм рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рднреАрддрд░ рд╣реИред
рдЗрд╕рд▓рд┐рдП,
рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдВрдЪрд╛рд▓рди рд╣реИ рдЬреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ (рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦреБрдж рдХреЗ рд╕рд╛рде рднреА)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдЬрдЯрд┐рд▓ рдСрдкрд░реЗрд╢рди рд╣реИ рдЬреЛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд░ рд╕рдХрддреА рд╣реИред рдЕрдиреНрдп рд╕рднреА рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ (рдЗрд╕реЗ рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдП рдпрд╣
рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ):
->2 + 3 5
рдпрд╣рд╛рдВ рд╣рдордиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ
2
рд▓рд┐рдпрд╛ рдФрд░ рдЙрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░
3
рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢
+
рднреЗрдЬрд╛ред рд╕рдВрджреЗрд╢ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдпреЛрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рд╢реЗрд▓ рджреНрд╡рд╛рд░рд╛ рдмрд╛рд╣рд░ рд▓реМрдЯрд╛рдпрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ
рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╕рдВрджреЗрд╢ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдБ рдПрдХ
рдореИрд╕реЗрдЬ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдЖрдЗрдП рдСрдмреНрдЬреЗрдХреНрдЯ
2
рдкреВрдЫреЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рд╡рд░реНрдЧ рдЗрд╕рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ
class
рд╕рдВрджреЗрд╢ рднреЗрдЬрдХрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
->2 class SmallInt
рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ред рджреЛрдиреЛрдВ
SmallInt
рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рдмрди рдЧрдПред
SmallInt
рд╡рд░реНрдЧ рдХреЗ рдФрд░ рдХреНрдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реЛ рд╕рдХрддреЗ
SmallInt
? рдЖрдЗрдП рдкреВрдЫрддреЗ рд╣реИрдВ:
->SmallInt listMethods * + - / < = asInteger asSmallInt bitAnd: bitOr: bitShift: hash quo: rem: truncSmallInt SmallInt
рд╣рд╛рдБред рдЬреНрдЮрд╛рдд + рдСрдкрд░реЗрдЯрд░ рдФрд░ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ред рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ
listMethods
рдХреЛ
listMethods
рд╡рд░реНрдЧ рдореЗрдВ рднреЗрдЬрд╛ред рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реБрдЖ рдХреНрдпреЛрдВрдХрд┐
SmallInt
рдХреНрд▓рд╛рд╕ рднреА рдПрдХ рд╡рд╕реНрддреБ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рднреА рднреЗрдЬреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рд╛рде рдЙрдкрд░реЛрдХреНрдд "рд╕рд╛рдЗрдХреЗрдбреЗрд▓рд┐рдХ" рдЪрд╛рд▓ рдХреЗ рд▓рд┐рдП рд╕рднреА рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрд╣ рдПрдХ рд╣реА рддрдВрддреНрд░ (рдмрд┐рдирд╛ рдмреИрд╕рд╛рдЦреА) рд╣реИред рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╡рд╕реНрддреБрдПрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рд╕ рдореЗрдВ рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред
рдХреБрдЫ рд╡рд╕реНрддреБрдПрдВ рдХреНрдпрд╛ рд╣реИрдВ?
рд╡рд╣рд╛рдБ рд╣реИрдВ: рд╕рд╛рдзрд╛рд░рдг рд╡рд╕реНрддреБрдПрдВ (рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ), рд╕реНрд╡рдпрдВ рдХрдХреНрд╖рд╛рдПрдВ, рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕реЗрд╕ред рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕ рдРрд╕реА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рдЙрдирдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдореБрд╢реНрдХрд┐рд▓, рд▓реЗрдХрд┐рди рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдЖрдк рдЗрд╕ рдкрд░ рдХреЛрдИ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗред
рдФрд░
рд╕рддреНрдп ,
рдЕрд╕рддреНрдп рдФрд░
рд╢реВрдиреНрдп рд╣реИ ред рдкрд╣рд▓реЗ рджреЛ рдХреНрд░рдорд╢рдГ
True
рдФрд░
False
рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдпрд╛рдиреА рдкреВрд░реА рдЫрд╡рд┐ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ
рд╕рдЪреНрдЪреА рд╡рд╕реНрддреБ рд╣реИред рдЙрди рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдЬрд╣рд╛рдВ рдпрд╣ рдмреВрд▓рд┐рдпрди рдорд╛рди рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред
рдЕрдм рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
рдиреАрд▓ рдХреА ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рд╣реЛрдЧрд╛, рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдЦрд╛рд▓реА рд╣реИ, рди рдХрд┐ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реНрдб (рдпрд╛ рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг) рдорд╛рдиред рдпрд╣ рд╕рд┐рд░реНрдл рдЬрд╛рд╡рд╛ рджреБрдирд┐рдпрд╛ рд╕реЗ C ++
null
рдкреЙрдЗрдВрдЯрд░ рдФрд░
null
рд╡рд┐рдкрд░реАрдд,
nil рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рд╡рд╕реНрддреБ рд╣реИред
рдЖрдЗрдП рджреЗрдЦреЗрдВ:
-> 1 isNil false -> nil isNil true -> nil class Undefined
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рджреВрд╕рд░реЛрдВ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рдЬреЛ, рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдкреНрд░рддреАрдХреЛрдВ
рдПрдХ рдЕрдиреНрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ
рдкреНрд░рддреАрдХ рд╣реИ ред рд╕реНрдореЙрд▓рдЯрд╛рдХрд▓ рдореЗрдВ рдПрдХ рдкреНрд░рддреАрдХ рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди,
рдиреАрд▓ ,
рд╕рдЪреНрдЪреЗ рдФрд░
рдЭреВрда рдХреА рддрд░рд╣ , рдПрдХ рдПрдХрд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЫрд╡рд┐ рдореЗрдВ рдореМрдЬреВрдж рд╣реИред
рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рд╛рдзрд╛рд░рдг рд░реЗрдЦрд╛рдПрдБ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИрдВ:
->'hello' = 'hello' true ->'hello' == 'hello' false -> 'hello' + 'World' = 'helloWorld' true -> 'hello' + 'World' == 'helloWorld' false
рдпрд╣рд╛рдВ,
=
рдСрдкрд░реЗрдЯрд░
=
рдЙрдкрдпреЛрдЧ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк
рд╕реЗ рджреЛ рддрд╛рд░реЛрдВ рдХреЗ
рдореВрд▓реНрдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐
==
рдСрдкрд░реЗрдЯрд░
рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБрдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛
рд╣реИ ред
==
рдСрдкрд░реЗрдЯрд░ рдХреЗрд╡рд▓ рддрднреА рд▓реМрдЯреЗрдЧрд╛ рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдВрдЧреЗред рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЗ рдореЗрдВ, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
String
рд╡рд░реНрдЧ рдХреЗ рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдорд╛рди рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдБ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:
-> #helloWorld = #helloWorld true -> #helloWorld == #helloWorld true -> ('hello' + 'World') asSymbol == #helloWorld true
рд╕реНрдореЙрд▓рдЯрд╛рдХ рдкрд╛рддреНрд░реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдкрдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдЦреЛ рди рджреЗрдВред рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ, рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ, рд╕рд╛рде рд╣реА рд╡рд┐рдзрд┐ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛
рдЕрдм рддрдХ, рд╣рдордиреЗ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рднреА рдПрдХ рд╡рд╕реНрддреБ рд╣реИред рддреЛ рдЖрдк рдЙрд╕реЗ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:
-> Array parent Collection -> Object parent nil -> Array parent isNil false -> Object parent isNil true
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рдРрд░реЗ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдкреВрд░реНрд╡рдЬреЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрд╕реНрдиреАрд▓ рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╣реИрдВред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓рд╛рд╕ рдирд┐рдпрдорд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рд╕рдмрд╕реЗ рдКрдкрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореВрд▓ рд╕рдВрджреЗрд╢ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рдпрд╣
рд╢реВрдиреНрдп рджреЗрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдИ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдФрд░ рдРрд╕реА рдХрддрд╛рд░реЗрдВ рдХрд┐рд╕реА рднреА рд▓рдореНрдмрд╛рдИ рдХреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ:
-> 12 12 -> 12 class SmallInt -> 12 class methods Dictionary (* -> Method, + -> Method, - -> Method, / -> Method, < -> Method, = -> Method, asInteger -> Method, asSmallInt -> Method, bitAnd: -> Method, bitOr: -> Method, bitShift: -> Method, hash -> Method, quo: -> Method, rem: -> Method, truncSmallInt -> Method) -> 12 class methods keys OrderedArray (* + - / < = asInteger asSmallInt bitAnd: bitOr: bitShift: hash quo: rem: truncSmallInt) -> 12 class methods keys size 15
рд╕рдВрджреЗрд╢ рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХрддреНрд░реАрдХрд░рдг рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рд░ рдмрд╛рд░ рдЧрдВрддрд╡реНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЙрд╕реА рд╡рд╕реНрддреБ рдХреЛ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрджреЗрд╢ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдкреВрд░реЗ рд╡рд╛рдХреНрдп рдХреЗ рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЕрд╡рдзрд┐ рд╕рдорд╛рдкреНрдд рд╣реЛрддреА рд╣реИред
рдиреЛрдЯ: рд▓рд┐рдЯрд┐рд▓ рд╕реНрдореЙрд▓рдЯрд╛рдХ рдореЗрдВ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд╕рдВрджреЗрд╢ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЦреНрдп рд╕рдВрджреЗрд╢
рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ: рдПрдХрд╛рддреНрдордХ рдФрд░ рджреНрд╡рд┐рдЖрдзрд╛рд░реАред рдЕрднреА рднреА
рдкреНрд░рдореБрдЦ рд╕рдВрджреЗрд╢ рд╣реИрдВ рдЬреЛ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЗрдП, рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕реНрдорд╛рд▓рдЗрдВрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд▓реЗрдВ рдФрд░ рдкреВрдЫреЗрдВ рдХрд┐ рдХреМрди рд╕реА рдЗрдВрдбреЗрдХреНрд╕ 7 рдХреЗ рддрд╣рдд рдХреБрдВрдЬреА рд╣реИ:
-> SmallInt methods keys at: 7 asInteger
рдпрд╣рд╛рдВ рд╣рдо
keys
#at:
рдкреИрд░рд╛рдореАрдЯрд░ 7 рдХреЛ
keys
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред
#at:
рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ 1 рд╕реЗ рдЧрд┐рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рддрддреНрд╡ рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ 1 рдФрд░ рдЕрдВрддрд┐рдо рдХрдВрдЯреЗрдирд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрджреЗрд╢ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
-> (Array new: 5) at: 1 put: 42 Array (42 nil nil nil nil)
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдкреИрд░рд╛рдореАрдЯрд░ 5 рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░
#new:
рд╕рдВрджреЗрд╢ рднреЗрдЬрдХрд░ рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдИ, рдЬреЛ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдордиреЗ рдирдП рдмрдирд╛рдП рдЧрдП рдПрд░реЗ рдореЗрдВ рд╡реИрд▓реНрдпреВ 42 рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ 1 рдкрд░ рд░рдЦрд╛ред рдкрд░рд┐рдгрд╛рдореА рдРрд░реЗ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╢реЗрд╖ 4 рдХреЛрд╢рд┐рдХрд╛рдПрдВ
рд╢реВрдиреНрдп рдорд╛рдиреЛрдВ рд╕реЗ рднрд░реА рд╣реБрдИ рд╣реИрдВред
рдореБрдЦреНрдп рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐
at: 1 put: 42
рдПрдХ #at:put:
рд╕рдВрджреЗрд╢ рд╣реИ
#at:put:
рдФрд░ рджреЛ рдирд╣реАрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдИ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реИред
рд╕реА-рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреА рд╢реИрд▓реА рдореЗрдВ, рдпрд╣
keys->atPut(1, 42)
рдХреЗ
keys->atPut(1, 42)
рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛
keys->atPut(1, 42)
, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдкрд╛рд░рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдкрддреНрд░рд╛рдЪрд╛рд░ рдФрд░ рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЦреЛ рдЬрд╛рддрд╛ рд╣реИред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд░реНрдЧ
Rectangle
, рдЬреЛ рдХрд┐рд╕реА рд╕рдорддрд▓ рдкрд░ рдПрдХ рдЖрдпрдд рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИред C ++ рдХреЛрдб рдореЗрдВ, рд╣рдо рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЖрдП:
Rectangle* rect1 = new Rectangle(200, 100); Rectangle* rect2 = new Rectangle(200, 100, 115, 120, 45);
рдХреИрд╕реЗ рд╕рдордЭреЗрдВ рдХрд┐ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдХрд┐рд╕рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ? рдХрд╣рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░рд╛ рдЕрдиреБрднрд╡ рд╣рдореЗрдВ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╣рдо рдЖрдпрдд рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХрд┐ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХреНрд╕ рдореЗрдВ рдЖрдХрд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рд╡рд╛рдИ рдореЗрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ
Rectangle
рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдореЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рднреА рдХрдо рдкрдардиреАрдп рд▓рдЧрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝ рджреЗрдЧрд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣
Point
рддрд░рд╣ "рдмрд╛рдд рдХрд░" рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдПрдХ рд╕рдорд╛рди рд╕реНрдореЙрд▓рдЯреЙрдХ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕рд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
rect1 <- Rectangle width: 200 height: 100. rect2 <- Rectangle new width: 200; height: 100; positionX: 115; positionY: 120; rotationDegrees: 45.
рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ рд╕рдВрджреЗрд╢
#width:height:
Rectangle
рд╡рд░реНрдЧ
#width:height:
рднреЗрдЬрд╛, рдЬрд┐рд╕рдиреЗ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝реАрд▓реНрдб рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ред рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛, рд╕рдВрджреЗрд╢
#new
рднреЗрдЬ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдб рдХрд┐рддрдирд╛ рд╡рд┐рдЬреБрдЕрд▓ рдмрдирддрд╛ рд╣реИред рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рддрд╛рдХрд┐ рдкрд╛рдардХ рд╕рдордЭ рд╕рдХреЗ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕ рдХреЛрдб рдХреЛ "рдорд╛рдереЗ" рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрдо рд╕реБрдВрджрд░ рджрд┐рдЦрддрд╛ рд╣реИ:
rect1 <- Rectangle width: 200 height: 100. rect2 <- Rectangle new. rect2 width: 200. rect2 height: 100. rect2 positionX: 115. rect2 positionY: 120. rect2 rotationDegrees: 45.
рдкреНрд░реЗрд╖рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢
рдЪрдпрдирдХрд░реНрддрд╛ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЗрдВрдЯрд░рд▓реЗрд╡ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рд╕реНрдорд╛рд▓рдХреЙрдХ рднрд╛рд╖рд╛ рдХреА рддрд╛рдХрдд рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЪрд░ рдирд╛рдореЛрдВ рдФрд░ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЙрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде, рдпрд╣ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╣реА рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рддрд░реАрдХреЗ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рдпрд╣ рдбрд┐рдХреНрд╢рдирд░реА рдХреНрд▓рд╛рд╕ рдХреЛрдб рд╣реИ рдЬреЛ
#keysAsArray:
рд╕рдВрджреЗрд╢ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ
#keysAsArray:
keysAsArray | index result | result <- Array new: keys size. 1 to: keys size do: [ :index | result at: index put: (keys at: index) ]. ^ result
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рд░рд┐рдЯрд░реНрди рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░
keys
рдлрд╝реАрд▓реНрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рднрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЗрдХрд╛рдИ
#to:do:
рд╕рдВрджреЗрд╢
#to:do:
рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде
#to:do:
ред рдкрд╣рд▓реА
keys size
, рдФрд░ рджреВрд╕рд░рд╛ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐)ред рд╕реНрдореЙрд▓рдЯрд╛рдХрд▓ рдореЗрдВ, рдХреЛрдб рдХреЗ рдРрд╕реЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ
рдмреНрд▓реЙрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ ред рдмреЗрд╢рдХ, рд╡реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ рдФрд░ рдПрдХ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рд╡реИрд░рд┐рдПрдмрд▓ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рддреБрд░рдВрдд рдЙрдкрдпреЛрдЧ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рдмреНрд▓реЙрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ #value, рдпрд╛ #value: рдпрджрд┐ рдпрд╣ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ
SmallInt
рд╡рд░реНрдЧ рдЕрдкрдиреЗ
#to:do:
рдкрджреНрдзрддрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдХрд░реЗрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмреНрд▓реЙрдХ рдХреЛ
size
рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛, рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд░ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХреА рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕реЗ
keys
рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди
keys
рдФрд░ рдЙрдиреНрд╣реЗрдВ
result
рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рдПрдЧреАред

рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рд╣рдо рдЕрдЪрд╛рдирдХ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реЗ рд╕реНрдорд╛рд▓рдЯрд╛рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ 90% рдЬрд╛рдирддреЗ рд╣реИрдВред рдпрд╣ рдХреЗрд╡рд▓ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рднрд╛рдЧреЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИред рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдКрдм рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХрд░реЗрдВрдЧреЗред рдореИрдВрдиреЗ рдЗрд╕реЗ рдкреНрд░рд╛рдердорд┐рдХ рдЫрд╡рд┐ рдХреЗ
рд╕реНрд░реЛрдд рдЫрд╡рд┐ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдореИрдВ рдкреВрд░реЗ рдкрд╛рда рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреВрдВрдЧрд╛, рдФрд░ рдлрд┐рд░ рднрд╛рдЧреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдКрдВрдЧрд╛ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реВрдВрдЧрд╛ред
METHOD Collection sort ^ self sort: [ :x :y | x < y ] ! METHOD Collection sort: criteria | left right mediane | (self isEmpty) ifTrue: [^self]. mediane <- self popFirst. left <- List new. right <- List new. self do: [ :x | (criteria value: x value: mediane) ifTrue: [ left add: x ] ifFalse: [ right add: x ] ]. left <- left sort: criteria. right <- right sort: criteria. right add: mediane. ^ left appendList: right !
Collection
рд╡рд░реНрдЧ рддрддреНрд╡реЛрдВ рдХреЗ рдХреБрдЫ рд╕рд╛рд░ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред
Collection
рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рд╣реА рдПрдХ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЫрдБрдЯрд╛рдИ рдХрд░ рд░рд╣рд╛ рд╣реИред
рддреЛ, рджрд┐рдирдЪрд░реНрдпрд╛ рдореЗрдВ:
METHOD Collection sort ^ self sort: [ :x :y | x < y ] !
рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреЛрдИ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╕рд╛рдереА рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ - #sort рд╡рд┐рдзрд┐: рдЬреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдорд╛рдирджрдВрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рджреЛ рддрддреНрд╡реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдирджрдВрдб рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ: рдЕрдзрд┐рдХ-рдХрдо рдЕрдиреБрдкрд╛рддред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдЯрд┐рд▓ рд╕рдВрдЧреНрд░рд╣ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП, рдХреЛрдИ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ
x someField < y someField
ред
рд░рд┐рдХреЙрд░реНрдб
[ :x :y |
рдмреНрд▓реЙрдХ рдХреЗ рдФрдкрдЪрд╛рд░рд┐рдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ,
^
рдкреНрд░рддреАрдХ рд╕реА рджреБрдирд┐рдпрд╛ рд╕реЗ
return
рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
self
рдЙрдкрдпреЛрдЧ
self
рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
super
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдХреЗ рдкреВрд░реНрд╡рдЬ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдЧреЗ рдмрдврд╝реЛ:
sort: criteria | left right mediane | (self isEmpty) ifTrue: [^self]. mediane <- self popFirst.
#Sort: рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ
criteria
рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдЧрд▓рд╛ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рд▓рдВрдмрд╡рдд рд▓рд╛рдЗрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдЖрддреЗ рд╣реИрдВред рд╢реИрд▓реА рджреНрд╡рд╛рд░рд╛, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
sort: criteria | left right mediane | (self isEmpty) ifTrue: [^self]. mediane <- self popFirst.
рдлрд┐рд░ рд╣рдо рд░рд┐рдХрд░реНрд╕рди рдмреЗрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдЦрд╛рд▓реА рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реЙрд░реНрдЯ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рднреА рдПрдХ рдЦрд╛рд▓реА рд╕рдВрдЧреНрд░рд╣ рд╣реЛрдЧрд╛ред
рд╕рд╛рдорд╛рдиреНрдп рдЕрд░реНрде рдореЗрдВ, рд╕реНрдорд╛рд▓рдЯрд╛рдХ рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдИ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдирд╣реАрдВ рд╣реИред рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрджреЗрд╢ рдФрд░ рдХреАрд╡рд░реНрдб рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдЕрд░реНрде рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХреЛрдИ рд╕рд╢рд░реНрдд рдмрдпрд╛рди рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд╕реНрддреБрдПрдВ рдЗрддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд░ рд╕рдХрддреА рд╣реИрдВ - рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдирд┐рд░реНрдорд╛рдг
(self isEmpty) ifTrue: [^self]
рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд╕рдорд╛рди рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред рдХреЛрд╖реНрдардХ рдпрд╣рд╛рдБ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рд╕рдЬрд╛рд╡рдЯреА рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд╛рд▓реЗ рдЧрдП рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо
#isEmpty
рдХреЛ
#isEmpty
рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ
#isEmpty
, рдФрд░ рдлрд┐рд░ рдЗрд╕ рдХреНрд░рд┐рдпрд╛ (
Boolean
рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ) рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣рдо рд╕рдВрджреЗрд╢
#ifTrue:
рдмреНрд▓реЙрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рднреЗрдЬрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╕рд╣реА рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐, рд╣рдо рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдорд╛рдзреНрдпрд┐рдХрд╛ рдХреЛ рдЙрд╕ рд╡рд╕реНрддреБ рд╕реЗ
#popFirst
рдЬреЛ
#popFirst
рд╕рдВрджреЗрд╢ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╡рд╕реНрддреБ рдХреЛ
#popFirst
ред рдореИрдВрдиреЗ рдЬрд╛рдирдмреВрдЭ рдХрд░ "рдЕрд╕рд╛рдЗрди" рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп "рдмрд╛рдБрдз" рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рддрд╛рдХрд┐ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬреЛрд░ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдпрд╣рд╛рдБ рдХреЛрдИ рднреА рдирдХрд▓ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рд╕рднреА рдЪрд░ рдХреЗрд╡рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВред рд╕рдВрдЧреНрд░рд╣ рд▓рд┐рдВрдХ рднреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреВрд░реНрдг рдпрд╛ рд╕рддрд╣реА (рдЧреИрд░-рдкреБрдирд░рд╛рд╡рд░реНрддреА) рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдХреЛрдб рдХрд╛ рдЕрдЧрд▓рд╛ рднрд╛рдЧ, рдЦреБрдж рдХреЛ рдЫрд╛рдВрдЯрдирд╛:
left <- List new. right <- List new. self do: [ :x | (criteria value: x value: mediane) ifTrue: [ left add: x ] ifFalse: [ right add: x ] ].
рд╣рдо рдЙрди рдорджреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рдЫрдБрдЯрд╛рдИ рд╡рд╛рд▓реЗ рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдкрд░рдореНрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рд╣рдо рдЙрдиреНрд╣реЗрдВ "рд╡рд╛рдо" рдФрд░ "рджрд╛рдпреЗрдВ" рдкрдбрд╝рд╛рд╡ рдХрд╣рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рд╡рд░реНрддрдорд╛рди рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ (рд╡рд┐рдзрд┐
#do:
, рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ (
x
) рдХреЗ рд▓рд┐рдП рд╣рдо рдорд╛рдзреНрдпрд┐рдХрд╛ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдмреНрд▓реЙрдХ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕реВрдЪреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреБрд▓рдирд╛ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдмреНрд▓реЙрдХ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рд╢рд╛рдВрддрд┐ рд╕реЗ рдЙрдкрд░реЛрдХреНрдд рдШреЛрд╖рд┐рдд рдЪрд░ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВред рддреЛ,
#do:
рдЕрдВрджрд░ рдХрд╛ рдмреНрд▓реЙрдХ
#do:
mediane
рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐
#ifTrue:
рдкрд░ рдмреНрд▓реЙрдХ
#ifTrue:
рджреЛрдиреЛрдВ
x
рдЪрд░ рдФрд░
left
рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдФрд░ рднреА рдЕрдзрд┐рдХ рдШреЛрд╖рд┐рддред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореЙрд▓рдЯрд╛рдХ рдореЗрдВ рдмреНрд▓реЙрдХ
рдХреНрд▓реЛрдЬрд░ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╢рд╛рдмреНрджрд┐рдХ рд╕рдВрджрд░реНрдн рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рд╢реЗрд╖ рд╡рд┐рдзрд┐:
left <- left sort: criteria. right <- right sort: criteria. right add: mediane. ^ left appendList: right
рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рднрд╛рдЧреЛрдВ рдХреЛ рдкреБрди: рдХреНрд░рдордмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЫрдВрдЯреЗ рд╣реБрдП рдмрд╛рдПрдВ, рдордзреНрдп рдФрд░ рдХреНрд░рдордмрджреНрдз рджрд╛рдПрдВ рднрд╛рдЧреЛрдВ рдХреЛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдЫрдВрдЯрд╛рдИ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЫрдВрдЯрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
-> #(13 0 -6 221 64 7 -273 42 1024) sort Array (-273 -6 0 7 13 42 64 221 1024) -> #(13 0 -6 221 64 7 -273 42 1024) sort: [ :x :y | x > y ] Array (1024 221 64 42 13 7 0 -6 -273) -> #(13 0 -6 221 64 7 -273 42 1024) sort: [ :x :y | x asString < y asString ] Array (-273 -6 0 1024 13 221 42 64 7) -> #(13 0 -6 221 64 7 -273 42 1024) sort: [ :x :y | x asString size < y asString size ] Array (7 0 13 -6 42 64 221 1024 -273) ->' , !' words List ( , !) ->' , !' words sort: [ :x :y | x size < y size ] List ( ! , )
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рд╣реА рдорд╛рдирджрдВрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд╕реВрдЪрд┐рдпреЛрдВ
рд╕реВрдЪреА рдХрдВрдЯреЗрдирд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдХреЛ рдХрд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдПрдХ рд╡рдВрд╢рдЬ рд╣реИ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдПрдХ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реВрдЪреА рдХреЗ рдкреНрд░рдореБрдЦ рдХреЛ рдЙрд╕рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рдЕрдЧрд▓рд╛ рддрддреНрд╡ (рд▓рд┐рдВрдХ рд╡рд░реНрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг) рд╕рдВрдЧреНрд░рд╣реАрдд рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕реВрдЪреА рдХреЗ рдЕрдЧрд▓реЗ рддрддреНрд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИредрдЗрд╕рд▓рд┐рдП, рд╕реВрдЪреА рдХреЗ рдкреНрд░рдореБрдЦ рдореЗрдВ рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╣реИ: METHOD List add: anElement elements <- Link value: anElement next: elements. ^ anElement !
рд╣рдо рдмрд╕ рддрддреНрд╡ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдирдП рддрддреНрд╡ рдХреЗ рд╕рд╛рде рдЬрд┐рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИредрд╕реВрдЪреА рдХреА рдкреВрдВрдЫ рдореЗрдВ рдПрдХ рддрддреНрд╡ рдЬреЛрдбрд╝рдирд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╡рд╣рд╛рдВ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: METHOD List addLast: anElement elements isNil ifTrue: [ self add: anElement ] ifFalse: [ elements addLast: anElement ]. ^ anElement ! METHOD Link addLast: anElement next notNil ifTrue: [ ^ next addLast: anElement ] ifFalse: [ next <- Link value: anElement ] !
рдЗрд╕ рдЕрд░реНрде рдореЗрдВ, рд╕реНрдорд╛рд▓рдЯрд╛рдХ рд╕реВрдЪрд┐рдпрд╛рдБ рд╣рд╛рд╕реНрдХреЗрд▓ рднрд╛рд╖рд╛ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕реЗ рдорд┐рд▓рддреА-рдЬреБрд▓рддреА рд╣реИрдВ (рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рд╕реВрдЪреА рдХреА рд╕рдорд░реВрдкрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╢реВрдиреНрдп)ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдСрдкрд░реЗрдЯрд░ :
#add рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ: рдФрд░ рдСрдкрд░реЗрдЯрд░ ++
рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ #addLast:
редрдЕрдВрдд рдореЗрдВ, #appendList: рд╡рд┐рдзрд┐ рдЬрд▓реНрджреА рд╕реЗ рджреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдореЗрдВ рдмрд╛рдБрдзрддреА рд╣реИред рд╡рд╣ рдкрд╣рд▓реА рд╕реВрдЪреА рдХрд╛ рдЕрдВрдд рдкрд╛рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рдЙрд╕рдореЗрдВ рдЪрд┐рдкрдХрд╛ рджреЗрддрд╛ рд╣реИ: METHOD List appendList: aList | element | (elements isNil) ifTrue: [ elements <- aList firstLink. ^self ]. element <- elements. [element next isNil] whileFalse: [element <- element next]. element next: aList firstLink. ^self !
рдпрд╣ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдкреБрди: рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рддреЗрдЬ рд╣реИредрдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдмрд╛рд░ рд╣рдордиреЗ рд╕реНрдореЙрд▓рдЯрд╛рдХ рдХреА рджреБрдирд┐рдпрд╛ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╕рд░рд▓рддрд╛ рдХреЗ рдЕрд░реНрде рдФрд░ рдЕрд░реНрде рдХреЛ рдЦреЛрдП рдмрд┐рдирд╛ред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╛рдж рдХреЗ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреА рдЪреАрдЬреЛрдВ рдкрд░ рд╕реНрдкрд░реНрд╢ рдХрд░реЗрдВрдЧреЗред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП :)рдкреБрдирд╢реНрдЪ: рд╣рдмреНрд░реЗрдХреНрд▓реЛрд╡ рд╢реЗрдХреНрдирд┐рд░рдЯреЗрдХ рдиреЗ рдПрдХ рдкреИрдЪ рдмрдирд╛рдпрд╛ рдЬреЛ рдЖрдкрдХреЛ MSVC10 рдкрд░ llst рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдореЗрдВ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИ - рдХреГрдкрдпрд╛ рдкреАрдПрдо рдкрд░ рджрд╕реНрддрдХ рджреЗрдВред