9 рдЪрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреЙрдорди рд▓рд┐рд╕реНрдк рд╡реЗрдмрд╕рд╛рдЗрдЯ

рдкрд░рд┐рдЪрдп









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



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



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



рд╢рд╛рдпрдж рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИрдВ - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореБрдЭреЗ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА - рдХреГрдкрдпрд╛ рд╢рд░реНрдо рди рдХрд░реЗрдВ рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреБрдЫ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ - рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдПрдХ рд▓рдХреНрд╖реНрдп рдЖрдкрдХреА рдЕрдкрдиреА рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рд╕реБрдзрд╛рд░рдирд╛ рдерд╛ред



рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЙрдмрд╛рдК рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ - рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдереЛрдбрд╝реА рд╕реА рдЕрдЪреНрдЫрд╛рдИ рд╣реИ рдЬреЛ рд╕рдВрднрд╡рддрдГ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд▓рд┐рд╕реНрдк рдХреЗ рд╕рд╛рде рдирд┐рдкрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдХреАрд╡рд░реНрдб SLIME рдФрд░ SWANK рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗрдВ :)





SBCL рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ





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



рддрд╛рдЬрд╛ рдПрд╕рдмреАрд╕реАрдПрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреБрд░рд╛рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рддреБрд░рдВрдд рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ:



$ apt-get install sbcl
      
      







SBCL рдХреЗ рд╕реНрд░реЛрдд рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: sbcl.sourceforge.net/platform-table.html



 #  $ wget http://downloads.sourceforge.net/project/sbcl/sbcl/1.0.45/sbcl-1.0.45-source.tar.bz2 #  : $ bzip2 -cd sbcl-1.0.45.tar.bz2 | tar xvf - #      $ cd sbcl-1.0.45/ $ sh make.sh #   SBCL    $ apt-get remove sbcl #   sbcl $ sh install.sh # ,    : $ sbcl This is SBCL 1.0.45, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. *
      
      







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



рд╣рдо рдЬрд▓реНрджреА рдбрд╛рд▓рддреЗ рд╣реИрдВ





рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдПрд╕рдбреАрдПрдл рдФрд░ рдХреНрд╡рд┐рдХ рд▓рд┐рд╕реНрдкред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдмрд╣реБрдд рдорд┐рддреНрд░рд╡рдд рд╣реИ, рдФрд░ рдПрд╕рдмреАрд╕реАрдПрд▓ рдХреЗ рд╕рд╛рде рдкреВрд░реНрд╡ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдм рд╣рдо рдЦреБрдж рдХреЗ рд▓рд┐рдП рдХреНрд╡рд┐рдХ рд▓рд┐рд╕реНрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред Quicklisp.org рдореЗрдВ рд╕рднреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдо рд╕реАрдзреЗ рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ:



 $ wget http://beta.quicklisp.org/quicklisp.lisp $ sbcl --load quicklisp.lisp * (quicklisp-quickstart:install) * (ql:add-to-init-file)
      
      







рд╣рдордиреЗ рд╣реБрдирдХреВрдЯ рдбрд╛рд▓рд╛





рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореИрдиреЗрдЬрд░ рд╣реИ, рд╣рдо рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ

hunchentoot рд╡реЗрдм рд╕рд░реНрд╡рд░, рдПрдХ рд╕рд╛рде рдЕрдкрдиреЗ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде, рдПрдХ рдХрдорд╛рдВрдб рдореЗрдВ:



 * (ql:quickload 'hunchentoot)
      
      







рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рд╣рдВрд╕ рдФрд░ рдХреАрдЪрдбрд╝ рдбрд╛рд▓рддреЗ рд╣реИрдВ





тАЬрдФрд░ 1998 рдореЗрдВ рдирд╛рд╕рд╛ рдХреЗ рдбреАрдк рд╕реНрдкреЗрд╕ 1 рдорд┐рд╢рди рдореЗрдВ рджреВрд░рд╕реНрде рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рдПрдХ рдФрд░ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдЙрджрд╛рд╣рд░рдг рднреА рд╣реБрдЖред рдЕрдВрддрд░рд┐рдХреНрд╖ рдпрд╛рди рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЗ рдЫрд╣ рдорд╣реАрдиреЗ рдмрд╛рдж, рдПрдХ рдЫреЛрдЯреЗ рд▓рд┐рд╕реНрдк рдХреЛрдб рдХреЛ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░рд┐рдХреНрд╖ рдпрд╛рди рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдореАрди рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХреЛрдб рдореЗрдВ рдорд╛рдпрд╛рд╡реА рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдЦреЛрдЬрд╛ рдЧрдпрд╛ рдерд╛ред рдЬрдм рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ (рдкреГрдереНрд╡реА рд╕реЗ 100 рдорд┐рд▓рд┐рдпрди рдореАрд▓), рдЯреАрдо рдХрд╛рд░реНрдп рдХреЛрдб рдХрд╛ рдирд┐рджрд╛рди рдФрд░ рд╕рд╣реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереА, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдХрд╣рд╛:



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





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



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



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



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



рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореЗрд░рд╛ рдЬреИрд╕рд╛ рд░рд┐рдореЛрдЯ рд╕рд░реНрд╡рд░ рд╣реИ, рддреЛ рдЖрдк рдЙрд╕ рдкрд░ SWANK, рдФрд░ SLIME рдХреЛ рдЕрдкрдиреА рдХрд╛рд░реНрдпрд╢реАрд▓ рдорд╢реАрди рдкрд░ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛

рдЙрд╕ рдФрд░ рджреЛрдиреЛрдВ рдХреЛ рдФрд░ рд╡рд╣рд╛рдБ рдФрд░ рд╡рд╣рд╛рдБ - рдореБрдЦреНрдп рдмрд╛рдд рддреЛ рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред SWANK рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:



 $ sbcl * (ql:quickload 'swank)
      
      







... рдФрд░ SLIME



 $ wget http://common-lisp.net/project/slime/snapshots/slime-current.tgz $ tar xvzf slime-current.tgz $ cd slime-2011-01-06/
      
      







рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ README рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

~ / .emacs / init.el рд╕рд╣реА рд░рд╛рд╕реНрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП рдХреЛрдб рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ



 ;; SBCL (setq inferior-lisp-program "/opt/sbcl/bin/sbcl") ; your Lisp system (setq slime-lisp-implementations '((sbcl ("sbcl")))) (setq slime-startup-animation nil) ;; SLIME (add-to-list 'load-path "~/.emacs.d/slime") ;;   slime (require 'slime) (setq slime-net-coding-system 'utf-8-unix) (slime-setup '(slime-fancy)) (setq slime-enable-evaluate-in-emacs t)
      
      







рд╕реНрдХреНрд░реАрди рд▓рдЧрд╛рдУ





рдЪреВрдВрдХрд┐ рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдХрднреА рднреА рдХреНрд░реИрд╢ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ (рдареАрдХ рд╣реИ, рд╣рд╛рдВ :) - рдореИрдВ рдПрд╕рдмреАрд╕реАрдПрд▓ рдХреА рд╣рдореЗрд╢рд╛ рдСрди-рдХреЙрдкреА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдмреЗрд╣рддрд░ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рд╣реИрдВ (рдЬреЛ рдХрд┐ рд╕рдХреНрд╖рдо рдкрд╛рдардХреЛрдВ рдХреЛ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдпрд╛рдж рдХрд░реЗрдВрдЧреЗ)



рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ:



 $ apt-get install screen
      
      







рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдХреНрд░реАрди рдореЗрдВ sbcl рдЪрд▓рд╛рдПрдВ рдФрд░ рдкреЛрд░реНрдЯ 4005 рдкрд░ рд╕реНрд╡рд╛рдВрдХ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВ





 $ screen -S sbcl $ sbcl * (require 'asdf) * (asdf:oos 'asdf:load-op 'swank) * (setq swank:*use-dedicated-output-stream* nil) * (swank:create-server :coding-system "utf-8-unix" :dont-close t :port 4005)
      
      







рд╣рдо рдЕрдкрдиреЗ рдорд╢реАрди рдкрд░ рдПрдордПрд╕реАрдПрд╕ рд╕реЗ рдЪрд▓ рд░рд╣реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд┐рд╕реНрдк рдЗрдореЗрдЬ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ





рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рд╣рдо рдореЗрдЬрдмрд╛рди рдХреЗ рд▓рд┐рдП ssh рд╕реБрд░рдВрдЧ рдХреЛ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ



 ssh -2 -N -f -L 4005:localhost:4005 user@host.tld
      
      







Emacs рдореЗрдВ, рд╣рдо рдЗрд╕ рд╕реБрд░рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ



 Mx slime-connect 127.0.0.1 4005
      
      







рдпрд╛, рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рд░реНрд╡рд░ рдЖрдкрдХреА рд╣реЛрдо рдорд╢реАрди рд╣реИ - рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдлреЗрдВрдХрдиреЗ рдФрд░ SWANK рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдмрд╕ Emacs-e рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВ:



 Mx slime
      
      







рдкреЛрд░реНрдЯ 4242 рдкрд░ рд╡реЗрдм-рд╕рд░реНрд╡рд░ hunchentoot рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ





рдЕрдм рд╣рдо hunchentoot рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рдореИрдВ рдЗрд╕реЗ 4242 рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдард╛рддрд╛ рд╣реВрдВ рдФрд░ nginx рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдирдЧреНрдиреЗрдХреНрд╕ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕ рдХреЛ рднреА рджреВрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдИ рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред



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



 рд╕рд░реНрд╡рд░ {
    80 рд╕реБрдиреЛ;
    server_name рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ;
     рд╕реНрдерд╛рди / {
       рдкреНрд░реЙрдХреНрд╕реА_рдкрд╛рд╕ http: // рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: 4242;
       xy_redirect рдмрдВрдж;
    }
 }




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



рдпрджрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЬрд╝рд┐рдЯрд░ рд▓рдЧрд╛рддрд╛рд░ рдЧрд▓рдд рдкреГрд╖реНрда рдкрд░ рдЖрддреЗ рд╣реИрдВ - рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡реНрдпрд╡рдзрд╛рди рдХреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореВрд▓реНрдп * рдХреИрдЪ-рдПрд░рд░-рдкреА * рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрдпрд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЖ рдЪреБрдХреА рд╣реИрдВред



 (defparameter *catch-errors-p* nil) (defclass debuggable-acceptor (hunchentoot:acceptor) ()) (defmethod hunchentoot:acceptor-request-dispatcher ((acceptor debuggable-acceptor)) (if *catch-errors-p* (call-next-method) (let ((dispatcher (handler-bind ((error #'invoke-debugger)) (call-next-method)))) (lambda (request) (handler-bind ((error #'invoke-debugger)) (funcall dispatcher request)))))) (defun request-dispatcher (request) "Hello!") (defparameter *debuggable-acceptor* (make-instance 'debuggable-acceptor :request-dispatcher 'request-dispatcher :port 4242)) (hunchentoot:start *debuggable-acceptor*) (setf hunchentoot:*handle-http-errors-p* nil)
      
      



)) (defparameter *catch-errors-p* nil) (defclass debuggable-acceptor (hunchentoot:acceptor) ()) (defmethod hunchentoot:acceptor-request-dispatcher ((acceptor debuggable-acceptor)) (if *catch-errors-p* (call-next-method) (let ((dispatcher (handler-bind ((error #'invoke-debugger)) (call-next-method)))) (lambda (request) (handler-bind ((error #'invoke-debugger)) (funcall dispatcher request)))))) (defun request-dispatcher (request) "Hello!") (defparameter *debuggable-acceptor* (make-instance 'debuggable-acceptor :request-dispatcher 'request-dispatcher :port 4242)) (hunchentoot:start *debuggable-acceptor*) (setf hunchentoot:*handle-http-errors-p* nil)







рдЕрдиреБрд░реЛрдз-рдкреНрд░реЗрд╖рдг рд╕рдорд╛рд░реЛрд╣ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╕ "рд╣реИрд▓реЛ!" рд▓реМрдЯрд╛рддрд╛ рд╣реИ - рд╣рдо рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред



рдпрджрд┐ рдЖрдк рдЗрд╕ рдЬрдЧрд╣ рдкрд░ рдкрдврд╝рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдПрдХ рдмреЛрддрд▓ рдбрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ

рдмреАрдпрд░ , рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓рд┐рд╕реНрдк рдореЗрдВ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рд╛рдЗрдЯ рдХреЛ рдЙрдард╛рдпрд╛ - рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рд░рд╣рд╛ рд╣реВрдВ

рдореИрдВ рдИрд░реНрд╖реНрдпрд╛ рдХрд░рддрд╛ рд╣реВрдВ! рд▓рд┐рд╕реНрдк рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдиреЗ рдореБрдЭреЗ рд▓рдЧрднрдЧ рдбреЗрдврд╝ рд╕рд╛рд▓ рджрд┐рдпрд╛

рдЗрд╕ рдЕрджреНрднреБрдд рднрд╛рд╖рд╛ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд░рд╣реЗ рд╣реИрдВ - рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣реИ

рд╕рд╛рдордиреЗред рд╣реИрдкреНрдкреА рд╣реИрдХрд┐рдВрдЧ!



All Articles