рдЕрдкрд╡рд╛рджреЛрдВ рдФрд░ рдЙрд╕ рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд╛рдж
рд╡рд╛рдкрд╕реА рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЪрд░реНрдЪрд╛ рдореЗрдВ рдПрдХ рдзрд╛рдЧрд╛ рдЧрд╛рдпрдм рдерд╛, рдЬрд┐рд╕рдХреА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдереАрд╕рд┐рд╕ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдХреБрдЫ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рднреА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рд╕рд╡рд╛рд▓ "рдХреНрдпрд╛ рдЪреБрдирдирд╛ рд╣реИ, рд░рд┐рдЯрд░реНрди рдХреЛрдб рдпрд╛ рдмрд╣рд┐рд╖реНрдХрд░рдг" рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдлреЙрд░реНрдЪреНрдпреВрдирд░" рдирд┐рд░реНрдорд╛рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд╡рд╛рд▓ рд╣реА рдирд╣реАрдВ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЙрд╕реА "рдлреЛрд░рдЪреЗрдХ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ, рдпрд╣ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдиреЗ рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рднрд╛рд╖рд╛ рдпрд╛ рдХреБрдЫ рдФрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред рдореБрдЦреНрдп рдмрд╛рдд рдкреИрдЯрд░реНрди рд╣реИ, рдЬреЛ рдпрд╣ рдмрд╣реБрдд рдСрдкрд░реЗрдЯрд░ рд╣реИред
рдлреЛрд░рдЪреЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЛред рдореИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ рд╕реАрдзреЗ рджреЛ рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рдорд╛рди рджрд┐рдЦрд╛рдКрдВрдЧрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ "рдЕрдкрд╡рд╛рдж" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ "рд░рд┐рдЯрд░реНрди рдХреЛрдб" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдЕрдкрд╡рд╛рдж [
рдорд╛рдирдЪрд┐рддреНрд░рдг рдФрд░
рдирд┐рдХрд╛рдп ]
, рдЬрд╣рд╛рдВ
рдореИрдкрд┐рдВрдЧ рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдирдХреНрд╢рд╛ рд╣реИ {рдЕрдкрд╡рд╛рдж 1 <-> рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдзрд┐ 1, рдЕрдкрд╡рд╛рдж 2 <-> рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╡рд┐рдзрд┐ 2, ...}, рдСрдкрд░реЗрдЯрд░ рдХрд╛
рд╢рд░реАрд░ - рдЬрд┐рд╕рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдФрд░ рджреВрд╕рд░рд╛ рдСрдкрд░реЗрдЯрд░:
рдкреНрд░рдХреНрд░рд┐рдпрд╛-рд░реЗрдЯрдХреЛрдб-рдЙрддреНрддрд░ [
рдорд╛рдирдЪрд┐рддреНрд░рдг рдФрд░
рдирд┐рдХрд╛рдп ]
, рдЬрд╣рд╛рдВ
рдореИрдкрд┐рдВрдЧ рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдореИрдк рд╣реИ {рд░рд┐рдЯрд░реНрди рдХреЛрдб 1 <-> рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╡рд┐рдзрд┐ 1, рд░рд┐рдЯрд░реНрди рдХреЛрдб 2 <-> рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╡рд┐рдзрд┐ 2, ...},
рдмреЙрдбреА - рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЬреЛ рд╕рдмрдкреНрд░реЛрдЧреНрд░рд╛рдо рдпрд╛ рдХрд┐рд╕реА рднреА рддрдерд╛рдХрдерд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд░рд┐рдЯрд░реНрди рдХреЛрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ред
рдЖрдЗрдП рджреЗрдЦрддреЗ рд╣реИрдВ рд╡реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдкреНрд░рдХреНрд░рд┐рдпрд╛-retcode-рдЬрд╡рд╛рдм
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд░рд┐рдЯрд░реНрди рдХреЛрдб 0, -1, -2 рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╢реЗрд╖ рдХреЛрдбреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд╣реИрдВ:
( defn ok-processor [ рдкрд░рд┐рдгрд╛рдо ]
( Println ( str "okред рдкрд░рд┐рдгрд╛рдо:" рдкрд░рд┐рдгрд╛рдо ) ) )
( рдЪреВрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ [ рдкрд░рд┐рдгрд╛рдо ]
( println ( str "errorред рдкрд░рд┐рдгрд╛рдо:" рдкрд░рд┐рдгрд╛рдо ) ) )
( рджреВрд╕рд░реЗ рддреНрд░реБрдЯрд┐-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдмрджрдирд╛рдо рдХрд░рдирд╛ [ рдкрд░рд┐рдгрд╛рдо ]
( Println ( str "рдПрдХ рдФрд░ рддреНрд░реБрдЯрд┐ред рдкрд░рд┐рдгрд╛рдо:" рдкрд░рд┐рдгрд╛рдо ) ) )
( defn рдЕрдЬреНрдЮрд╛рдд-рддреНрд░реБрдЯрд┐-рдкреНрд░реЛрд╕реЗрд╕рд░ [ рдкрд░рд┐рдгрд╛рдо ]
( Println ( рдЕрдЬреНрдЮрд╛рдд "рдЕрдЬреНрдЮрд╛рдд рддреНрд░реБрдЯрд┐ред рдкрд░рд┐рдгрд╛рдо:" рдкрд░рд┐рдгрд╛рдо ) ) )
рд╣рдо рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ рд░рд┐рдЯрд░реНрди рдХреЛрдб рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
( рдбрд┐рдл рд░рд┐рдЬрд▓реНрдЯ-рдореИрдкрд┐рдВрдЧ { 0 тАЩрдУрдХреЗ-рдкреНрд░реЛрд╕реЗрд╕рд░
- 1 'рддреНрд░реБрдЯрд┐-рдкреНрд░реЛрд╕реЗрд╕рд░
- 2 'рдЕрдиреНрдп рддреНрд░реБрдЯрд┐-рдкреНрд░реЛрд╕реЗрд╕рд░
: рдЕрдиреНрдп 'рдЕрдЬреНрдЮрд╛рдд-рддреНрд░реБрдЯрд┐-рдкреНрд░реЛрд╕реЗрд╕рд░ } )
рдЕрдм рдЯреЗрд╕реНрдЯ рд░реВрдЯреАрди рдмрдирд╛рдПрдВ рдЬреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдЯрд░реНрди рдХреЛрдб рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВ:
( defn test-call-ok [ ]
[ 0 "рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо" ] )
( defn test-call- error [ ]
[ - 1 "рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо" ] )
( рдЪреВрдХ-рдкрд░реАрдХреНрд╖рдг-рдХреЙрд▓-рдЕрдиреНрдп- рддреНрд░реБрдЯрд┐ [ ]
[ - 2 "рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо" ] )
( рдЪреВрдХ рдкрд░реАрдХреНрд╖рдг-рдХреЙрд▓-рдЕрдЬреНрдЮрд╛рдд- рддреНрд░реБрдЯрд┐ [ ]
[ - 1000 "рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо" ] )
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдХрд╛рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
( рдкреНрд░рдХреНрд░рд┐рдпрд╛-рд░реЗрдЯрдХреЛрдб-рдЙрддреНрддрд░ рдкрд░рд┐рдгрд╛рдо-рдорд╛рдирдЪрд┐рддреНрд░рдг ( рдкрд░реАрдХреНрд╖рдг-рдХреЙрд▓-рдУрдХреЗ ) )
рдареАрдХред рдкрд░рд┐рдгрд╛рдо : рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо
( рдкреНрд░рдХреНрд░рд┐рдпрд╛-рд░реЗрдЯрдХреЛрдб-рдЙрддреНрддрд░ рдкрд░рд┐рдгрд╛рдо-рдорд╛рдирдЪрд┐рддреНрд░рдг ( рдкрд░реАрдХреНрд╖рдг-рдХреЙрд▓- рддреНрд░реБрдЯрд┐ ) )
рддреНрд░реБрдЯрд┐ ред рдкрд░рд┐рдгрд╛рдо : рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо
( рдкреНрд░рдХреНрд░рд┐рдпрд╛-рд░реЗрдЯрдХреЛрдб-рдЙрддреНрддрд░ рдкрд░рд┐рдгрд╛рдо-рдорд╛рдирдЪрд┐рддреНрд░рдг ( рдкрд░реАрдХреНрд╖рдг-рдХреЙрд▓-рдЕрдиреНрдп- рддреНрд░реБрдЯрд┐ ) )
рдПрдХ рдФрд░ рддреНрд░реБрдЯрд┐ ред рдкрд░рд┐рдгрд╛рдо : рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо
( рдкреНрд░рдХреНрд░рд┐рдпрд╛-рд░реЗрдЯрдХреЛрдб-рдЙрддреНрддрд░ рдкрд░рд┐рдгрд╛рдо-рдорд╛рдирдЪрд┐рддреНрд░рдг ( рдкрд░реАрдХреНрд╖рдг-рдХреЙрд▓-рдЕрдЬреНрдЮрд╛рдд- рддреНрд░реБрдЯрд┐ ) )
рдЕрдЬреНрдЮрд╛рдд рддреНрд░реБрдЯрд┐ ред рдкрд░рд┐рдгрд╛рдо : рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо
рдпрд╣рд╛рдБ, рдкреНрд░рддреНрдпреЗрдХ рд╢рд░реАрд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рд╕рдорд╛рд╣рд┐рдд рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдореЗрдВ, рдЖрдк рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдирдП рдХреЛрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдпрд╛ рдореМрдЬреВрджрд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдореИрдкрд┐рдВрдЧ рдореЗрдВ рдЙрдЪрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдХреЗ рдкрд╛рд░рджрд░реНрд╢реА рддрд░реАрдХреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХреЛрдИ рдЗрдл рдирд╣реАрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░рд┐рдЯрд░реНрди рдХреЛрдб рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдлреА рд▓рдЪреАрд▓реЗ рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдЕрдкрд╡рд╛рдж
рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ред рдХреБрдЫ рдЕрдкрд╡рд╛рджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╣реИрдВ:
( рдбрд┐рдлреЗрдВрд╕ рдПрд░рд┐рдердореИрдЯрд┐рдХ-рдЕрдкрд╡рд╛рдж-рдкреНрд░реЛрд╕реЗрд╕рд░ [ e ]
( Println ( "рдЕрдВрдХрдЧрдгрд┐рдд рдЕрдкрд╡рд╛рдж" ) ) )
( nnppointer- рдЕрдкрд╡рд╛рдж-рдкреНрд░реЛрд╕реЗрд╕рд░ [ рдИрдПрди ]
( Println ( str "Nullpointer рдЕрдкрд╡рд╛рджред" ) ) )
( рдПрдХ рдФрд░ рдЕрдкрд╡рд╛рдж-рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдмрджрдирд╛рдо рдХрд░рдирд╛ [ e ]
( Println ( str "рдЕрдиреНрдп рдЕрдкрд╡рд╛рджред" ) ) )
рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдЪрд┐рддреНрд░ рдЕрдкрд╡рд╛рдж рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ:
( def рдЕрдкрд╡рд╛рдж-рдореИрдкрд┐рдВрдЧ { java ред lang ред ArithmeticException 'рдЕрдВрдХрдЧрдгрд┐рдд-рдЕрдкрд╡рд╛рдж-рдкреНрд░реЛрд╕реЗрд╕рд░)
рдЬрд╛рд╡рд╛ рд▓рдВрдЧ ред NullPointerException 'nullpointer-рдЕрдкрд╡рд╛рдж-рдкреНрд░реЛрд╕реЗрд╕рд░
рдЬрд╛рд╡рд╛ рд▓рдВрдЧ ред рдЕрдкрд╡рд╛рдж 'рдЕрдиреНрдп-рдЕрдкрд╡рд╛рдж-рдкреНрд░реЛрд╕реЗрд╕рд░ } )
рд╣рдо рдкрд░реАрдХреНрд╖рдг рджрд┐рдирдЪрд░реНрдпрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ:
( defn test-call-ok [ ]
"рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо" )
( рдкрд░реАрдХреНрд╖рдг-рдлреЗрдВрдХ-рдЕрдВрдХрдЧрдгрд┐рдд-рдЕрдкрд╡рд╛рдж [ ]
( рдереНрд░реЛ ( рдирдпрд╛ рдЬрд╛рд╡рд╛ ред рд▓реИрдВрдЧ ред рдЕрд░рд┐рдердореЗрдЯрд┐рдХ рдПрдХреНрд╕рд╕реЗрдкреНрд╢рди ) )
"рдкрд░реАрдХреНрд╖рдг рдлрд┐рд░ рд╕реЗ рдЖрдирд╛" )
( defn test-throw-nullpointer- рдЕрдкрд╡рд╛рдж [ ]
( рдлреЗрдВрдХ ( рдирдпрд╛ рдЬрд╛рд╡рд╛ ред рд▓рдВрдЧ ред NullPointerException ) )
"рдкрд░реАрдХреНрд╖рдг рдлрд┐рд░ рд╕реЗ рдЖрдирд╛" )
( рдкрд░реАрдХреНрд╖рдг-рдлреЗрдВрдХ-рдЕрдиреНрдп-рдЕрдкрд╡рд╛рдж [ ]
( рдлреЗрдВрдХ ( рдирдпрд╛ рдЬрд╛рд╡рд╛ ред рд▓реИрдВрдЧ ред ClassNotFoundException ) )
"рдкрд░реАрдХреНрд╖рдг рдлрд┐рд░ рд╕реЗ рдЖрдирд╛" )
рд╣рдорд╛рд░реЗ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдХрд╛рдо:
( рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдЕрдкрд╡рд╛рдж рдЕрдкрд╡рд╛рдж-рдорд╛рдирдЪрд┐рддреНрд░рдг
( рдкрд░реАрдХреНрд╖рдг-рдХреЙрд▓-рдУрдХреЗ ) )
"рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо"
( рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдЕрдкрд╡рд╛рдж рдЕрдкрд╡рд╛рдж-рдорд╛рдирдЪрд┐рддреНрд░рдг
( рдкрд░реАрдХреНрд╖рдг-рдлреЗрдВрдХ-рдЕрдВрдХрдЧрдгрд┐рдд-рдЕрдкрд╡рд╛рдж ) )
рдЕрдВрдХрдЧрдгрд┐рдд рдЕрдкрд╡рд╛рдж ред
( рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдЕрдкрд╡рд╛рдж рдЕрдкрд╡рд╛рдж-рдорд╛рдирдЪрд┐рддреНрд░рдг
( рдкрд░реАрдХреНрд╖рдг-рдереНрд░реЛ-рдирд▓рдкреЙрдЗрдВрдЯ-рдЕрдкрд╡рд╛рдж ) )
Nullpointer рдЕрдкрд╡рд╛рдж ред
( рдкреНрд░рдХреНрд░рд┐рдпрд╛-рдЕрдкрд╡рд╛рдж рдЕрдкрд╡рд╛рдж-рдорд╛рдирдЪрд┐рддреНрд░рдг
( рдкрд░реАрдХреНрд╖рдг-рдлреЗрдВрдХ-рдЕрдиреНрдп-рдЕрдкрд╡рд╛рдж ) )
рдЕрдиреНрдп рдЕрдкрд╡рд╛рдж ред
рдкрд┐рдЫрд▓реЗ рдмрдпрд╛рди рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЕрдВрдд рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
рдпреЗ рдСрдкрд░реЗрдЯрд░ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИрдВ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХ рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рдеред рдпрд╣рд╛рдВ рдореИрдВ
рдкреНрд░рдХреНрд░рд┐рдпрд╛-рд░реЗрдЯрдХреЛрдб-рдЙрддреНрддрд░ рдХреЛ рд╡рд░реАрдпрддрд╛ рджреЗрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рд░рд┐рдЯрд░реНрди рдХреЛрдб рд╡рд╛рд▓реЗ рд╡реЗрд░рд┐рдПрдВрдЯ рд╣рдореЗрд╢рд╛ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдореЗрдВ рдлрд╛рдпрджреЗрдордВрдж рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдФрд░ рд╕реНрд╡рдпрдВ рднрд╛рд╖рд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ)ред
рдпрд╣рд╛рдБ рдЙрдкрд░реЛрдХреНрдд рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рд╣реИ:
( рдбрд┐рдлрдореИрдХреНрд░реЛ рдкреНрд░реЛрд╕реЗрд╕-рдЕрдкрд╡рд╛рдж [ рдорд╛рдирдЪрд┐рддреНрд░рдг рдФрд░ рдирд┐рдХрд╛рдп ]
( let [ рдХреИрдЪ-рдЖрдЗрдЯрдо] ( рдирдХреНрд╢рд╛ ( fn [ m ])
` ( рдХреИрдЪ ~ ( рдкрд╣рд▓рд╛ рдореА ) рдИ #
( ~ ( eval ( рджреВрд╕рд░рд╛ m ) ) e # ) ) )
( eval рдорд╛рдирдЪрд┐рддреНрд░рдг ) ) ]
` ( рдХреЛрд╢рд┐рд╢ ~ @ рд╢рд░реАрд░
~ @ рдкрдХрдбрд╝-рдЖрдЗрдЯрдо ) ) )
( рдбрд┐рдлрдореИрдХреНрд░реЛ рдкреНрд░реЛрд╕реЗрд╕-рд░реЗрдЯрдХреЛрдб-рдЙрддреНрддрд░ [ рдореИрдкрд┐рдВрдЧ рдПрдВрдб рдмреЙрдбреА ]
` ( рдЪрд▓реЛ [ рдЬрд╡рд╛рдм # ( ~ ~ рд╢рд░реАрд░ )
рд░реЗрдЯрдХреЛрдб # ( рдкрд╣рд▓рд╛ рдЙрддреНрддрд░ # )
рдкрд░рд┐рдгрд╛рдо # ( рджреВрд╕рд░рд╛ рдЙрддреНрддрд░ # )
рдкреНрд░реЛрд╕реЗрд╕рд░ # ( рдЧреЗрдЯ ~ рдореИрдкрд┐рдВрдЧ рд░реЗрдЯрдХреЛрдб # )
рдкреНрд░реЛрд╕реЗрд╕рд░ # ( рдЕрдЧрд░ ( рд╢реВрдиреНрдп; рдкреНрд░реЛрд╕реЗрд╕рд░ # ) : ( рдЕрдиреНрдп ~ рдореИрдкрд┐рдВрдЧ ) рдкреНрд░реЛрд╕реЗрд╕рд░ # ) ]
( ( eval processor # ) рдкрд░рд┐рдгрд╛рдо # ) ) )
рдпрд╣ рдмрд▓реНрдХрд┐ рдЕрддрд┐рд░рдВрдЬрд┐рдд рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХреЗ рдореВрд▓ рддрддреНрд╡ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рдирдП рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЗ рд╕рд╛рде рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рд╕рдорд╛рди рдЙрдЪреНрдЪ-рдХрд╛рд░реНрдп рдлрд╝рдВрдХреНрд╢рди, рд▓реИрдореНрдмреНрдбрд╛, рдХреНрд▓реЛрдЬрд░ рднреА рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреА рднрд╛рд╖рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдХрд▓рд╛рдХрд╛рд░ рдмрдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рд╡рд╣ рдмрд╛рд░-рдмрд╛рд░ рдкреИрдЯрд░реНрди рдирд╣реАрдВ рд▓рд┐рдЦрддрд╛ред рд╡рд╣ рдмрд╕ рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЪрд┐рддреНрд░рдордп рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╣рд▓ рддреИрдпрд╛рд░ рдХрд░ рд╕рдХреЗред рдПрдХ рдкреЗрд╢рд╛ рдПрдХ рд╢рд┐рд▓реНрдк рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдХрд▓рд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИред