рдЕрдЪреНрдЫрд╛ рдкрдврд╝рдиреЗ рдХрд╛ рд╕рдордп, рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ habrahabr.ru
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реИрдХрдбрд╝реЛрдВ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░рд╛рдлрд┐рдХ рддрддреНрд╡реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рднрд╛рд╖рд╛ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдФрдЪрд┐рддреНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ (рд╡рд░реНрдХрд┐рдВрдЧ рдЯрд╛рдЗрдЯрд▓ PL / 2) рдФрд░ рдЧреЗрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ (рд╡рд░реНрдХрд┐рдВрдЧ рдЯрд╛рдЗрдЯрд▓ PL / 2 рд╕реНрдХреНрд░рд┐рдкреНрдЯ) рдХреЗ рдлрд╛рдпрджреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдореИрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдиреБрдХрд╕рд╛рди рдЦреЛрдЬрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред
рдореБрдЦреНрдп рдкреНрд░рддрд┐рдорд╛рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛрдб
рдкреНрд░реЛрд▓реЙрдЧ, рдПрд╕рдХреНрдпреВрдПрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдЗрдВрдкреАрд░рд┐рдпрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдкреНрд░рд╕рд╛рд░рдг рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЗрди рддрдХрдиреАрдХреЛрдВ рдХреЛ рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХ рд╣реА рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдореЗрдВ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЯрдХрд░рд╛рд╡ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордп рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛ред
рддреЛ, рд╢реИрдХреНрд╖рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рдкреНрд░рдореБрдЦ рддрддреНрд╡ред
рд╕реНрд░реЛрдд рдкрд╛рда
рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдкрд╛рда (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╡рд░реНрдгрди) рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ [рдирд╛рдо] рдЯреБрдХрдбрд╝реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рдкреАрдПрд▓ / 2, рдПрд╕рдХреНрдпреВрдПрд▓, рдПрдЪрдЯреАрдПрдордПрд▓, рдкрд╛рда, рдкреАрдПрд▓ / 2 рд╕реНрдХреНрд░рд┐рдкреНрдЯред
рдХреЛрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреА рд╢реБрд░реБрдЖрдд рд▓рд╛рдЗрди рдХреА рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ
рдореЗрдЯрд╛ рдХреАрд╡рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ
рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдВрдд рдХреЛ рд▓рд╛рдЗрди рдХреА рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдиреБрдХреНрд░рдо
/ рдореЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдкреАрдПрд▓ / 2 рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рд╕рдорд╛рди рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдХрдо рд╕реЗ рдХрдо 4 рдкрджреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдСрдлрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд╛рда рд╕рдВрд░рдЪрдирд╛
рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреЗ рд╕реНрддрд░ рдХреЗ рдмреАрдЪ рдмрджрд▓рд╛рд╡ рдХрд╛ рдЖрдХрд╛рд░ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИред рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдкрд░ рдСрдкрд░реЗрдЯрд░ рдХреА рдирд┐рд░рдВрддрд░рддрд╛ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕реНрддрд░ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдХрдо рд╕реЗ рдХрдо 3 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рдСрдлрд╕реЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИ
рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрддрд░ рд╕реНрд░реЛрдд
рдореЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рддреАрдХ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрд░рдорд╢рдГ, рдХреЛрдИ рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░рддреАрдХ 4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕
рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЛрд╖реНрдардХ рдЧреНрд░рд╣рдг рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
рдХреЛрд╖реНрдардХ (...) рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рдХреЙрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐
рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ [...] рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдЖрдпрд╛рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╕рд░рдгреА рддрддреНрд╡ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕рд┐рдЬрд╝ {...} рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
{... ... -} - рдХреЛрд╖реНрдардХ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ - рд╕рдВрдмрдВрдзрдкрд░рдХ рд╡рд░реНрдЧ рдХреЗ рд╢рд░реАрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
{# ... #} - рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдмреНрд▓реЙрдХ рдХреЗ рд╢рд░реАрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
{$ ... $} - рдПрдХ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╡рд░реНрдЧ рд╕реНрдерд┐рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╕рдордп рдмрд╛рд╣рд░реА рдлреНрд░реЗрдо рдХреЛрд╖реНрдардХ
{* ... *} - рд╡рд░реНрдЧ рдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдирд┐рдХрд╛рдп рдХрд╛ рд╡рд┐рд╡рд░рдг
{& ... &} - рд╡рд┐рдзрд┐ рдирд┐рдХрд╛рдп рдХрд╛ рд╡рд░реНрдгрди
{@ @ @} - рдиреЗрдорд╕реНрдкреЗрд╕ рдмреЙрдбреА
{| ... |} - рд╕рдорд╛рдирд╛рдВрддрд░ рдмреНрд▓реЙрдХ
{% ...%} - рдкреНрд░рдмрдВрдзрд┐рдд рдмреНрд▓реЙрдХ
{= ... =} - рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд╛ рд╡рд░реНрдЧ
{...} - рд╡рд┐рдзрд┐ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдмреНрд▓реЙрдХ
рдСрдкрд░реЗрдЯрд░реЛрдВ
== =/= := ++ -- + - * / -/- ( , .. IDE) (? boolean ? value_true :: value_false ?) -
рдЗрдВрдкреАрд░рд┐рдпрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИ:
рдХреЛрд╖реНрдардХ рдХреЗ рдмреАрдЪ рд╕рдВрд▓рдЧреНрди рдСрдкрд░реЗрдЯрд░ {рдФрд░ &} рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд╛рда рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ
рдирд┐рд╖реНрдкрд╛рджрди рдЖрджреЗрд╢ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдФрд░ рд╢рд╛рдЦрд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╢рд░реНрдд рдкрд░ рдкреВрд░реНрддрд┐
if (){ ... }
рд╢рд░реНрддреЛрдВ рдХреЗ рдкрд╣рд▓реЗ рдорд┐рд▓рдиреЗ рдкрд░ рдмреНрд▓реЙрдХ рдирд┐рд╖реНрдкрд╛рджрди рдФрд░ рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдмреНрд▓реЙрдХ рдХрд░реЗрдВ
decision{ if (<1>) ... if (<2>) ... else ... }
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рд╕реНрд╡рд┐рдЪ рдЬреЛ рдПрдХ рд╕реНрдерд┐рд░ рдпрд╛ рдПрдХ рдЧрдгрдирд╛ рдХреЗ рд╕рджрд╕реНрдп рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ
switch (<>){ case <1>: ... case <2>: ... else ... }
рдЖрдк рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЯрд░реНрдирд░реА рдЪрдпрди рдСрдкрд░реЗрдЯрд░ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реВрдк рдСрдкрд░реЗрдЯрд░
loop [explicit] [] { for <[] [ := ]>; from <>; while <, >; next < >; where < > ... continue; ... break [ ]; ... }
рдпрд╣рд╛рдВ:
рд▓реВрдк - рд▓реВрдк рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ
рд╕реНрдкрд╖реНрдЯ - рд▓реВрдк рдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛
рдХреЗ рд▓рд┐рдП - рд▓реВрдк рдЪрд░ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рд╛рд░рдВрдн рдХреА рд╕реВрдЪреА
рдЬрдмрдХрд┐ - рд╕реНрдерд┐рддрд┐ рдЬрд┐рд╕рдХреЗ рддрд╣рдд рд▓реВрдк рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ
рдЕрдЧрд▓рд╛ - рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдмрд╛рдж рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЖрджреЗрд╢
рд╕реЗ - рдПрдХ рдЪрдХреНрд░ рд╕реЗ рдЧреБрдЬрд░рддреЗ рд╕рдордп рдЬрд┐рди рддрддреНрд╡реЛрдВ рд╕реЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЬрд╣рд╛рдВ - рд▓реВрдк рдмреЙрдбреА рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐
рдЬрд╛рд░реА - рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрдХреНрд░рдордг рдХреЗ рдСрдкрд░реЗрдЯрд░
рдмреНрд░реЗрдХ - рд╡рд░реНрддрдорд╛рди рдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЪрдХреНрд░ рд╕реЗ рдЬрд▓реНрджреА рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХрд╛ рдСрдкрд░реЗрдЯрд░
рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐
рдСрдкреНрдЯ-рдЖрдЙрдЯ рд▓реЗрдирджреЗрди рдФрд░ рдкрд╛рд░реНрд╕рд▓ рдкреНрд░рдмрдВрдзрди
transaction{ finalize { } catch { } { throw
рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
new - рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рдПрдБ
рдбреНрд░реЙрдк - рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ
рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЪрдпрди рдХрд░реЗрдВ
:: = - рдирд╛рдорд┐рдд рд╕рдВрдЧреНрд░рд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдореНрдорд┐рд▓рд┐рдд
+ = - рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдХрд╛ рд╕рдорд╛рд╡реЗрд╢
рд╣рдЯрд╛рдирд╛
- = - рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛рдирд╛
рдЕрджреНрдпрддрди - рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХрдИ рдЕрджреНрдпрддрди
рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдЧ рдпрд╛ рдЙрд╕рдХреЗ рдЧреБрдгреЛрдВ / рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди
рдЕрдиреБрджрд╛рди
+ = - рдПрдХ рд╡рд░реНрдЧ рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╕реНрддреБ рдХреЗ рдЕрдиреБрдореЗрдп рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ
рдЗрдирдХрд╛рд░
+ = - рдХрд┐рд╕реА рд╡рд░реНрдЧ рдпрд╛ рд╕рдВрдкрддреНрддрд┐ рдкрд░ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдЕрдзрд┐рдХрд╛рд░ рджреЗрдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рдирд╛
Revoke - рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╡рд╕реНрддреБ рдЕрдзрд┐рдХрд╛рд░ рд╣рдЯрд╛ рджреЗрдВ
рд╡рд░реНрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░
рд╡рд░реНрдЧреЛрдВ рдХреЛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдбреЛрдореЗрди рд╡рд░реНрдЧ - рд░рдирдЯрд╛рдЗрдо рдкреНрд░рд╛рдердорд┐рдХ рд╡рд░реНрдЧ
- рд░рд┐рд▓реЗрд╢рди рдХреНрд▓рд╛рд╕ - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХрд╛ рд╕рдВрдмрдВрдз (рдкреНрд░реЛрд▓реЙрдЧ рдСрдлрд╝рд░ рдХреЗ рд╕рдорд╛рди, рдлрд╝рдВрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА), рдХреЛрдИ рд╡рд┐рдзрд┐ рдФрд░ рдЧреБрдг рдирд╣реАрдВ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЦреБрд▓реЗ рд╕рджрд╕реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪред рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд▓реМрдЯреЗ рд╕реЗрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИ
- рд╕рдВрд░рдЪрдирд╛ рд╡рд░реНрдЧ - рдЦреБрд▓реЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд░рдЪрдирд╛ред рд╡рд░реНрддрдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрддреНрд╡ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
- рд╕рд┐рд╕реНрдЯрдо рдХреНрд▓рд╛рд╕ - рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдЬрд┐рд╕рдореЗрдВ рдирд┐рдЬреА рдФрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рд░рд╛рд╕рдд рд╡рд╛рд▓реЗ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд░реНрдЧ - рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдк рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рдиреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реЗрд╡рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдХреЛрдИ рднреА рд╡рд┐рдзрд┐ рди рдХреЗрд╡рд▓ рд╕реНрд╡рдпрдВ ( рдпрд╣ ) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдХреЙрд▓рд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ ( рдкреНрд░реЗрд╖рдХ ) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрддрдХ рднреА рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдзрд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдорд╛рдирдХ рддрд░реАрдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдирд╣реАрдВ
рднреЗрдбрд╝ рдХрд╛ рдмрдЪреНрдЪрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рд╕реВрдЪреА рдСрдкрд░реЗрдЯрд░реЛрдВ
- :: = - рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╡рд┐рд╕реНрддрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд╛
- |> - рдмрд╛рдПрдВ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдк рд▓рд╛рдЗрди, рд╕рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ
рдЖрджреЗрд╢рд┐рдд рд╕реВрдЪрд┐рдпреЛрдВ рдкрд░ рдЕрд╕реНрддрд┐рддреНрд╡рдЧрдд рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдорд╛рддреНрд░рд╛рддреНрдордХ
- &> - рдмрд╛рдПрдВ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдЬреЛ рд╕рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
- !> - рдмрд╛рдПрдВ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдЬреЛ рджрд┐рдП рдЧрдП рд╕рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
- %> - рдмрд╛рдПрдВ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдЬреЛ рд╕рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рдЕрдВрдХрдЧрдгрд┐рдд - рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╢реЗрд╖)
- ~> - рд╕реВрдЪреА рдХреЗ рд╕рднреА рддрддреНрд╡, рдкрд╣рд▓реЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ
- $> - рдмрд╛рдИрдВ рд╕реВрдЪреА рд╕реЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣, рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬреЛ рджреА рдЧрдИ рд╕рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
- ?> - рджреА рдЧрдИ рд╕рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рдмрд╛рдИрдВ рд╕реВрдЪреА рд╕реЗ рдЕрдВрддрд┐рдо рдЖрдЗрдЯрдо рдХрд╛ рд╕рдВрдЧреНрд░рд╣
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
рд╕рд┐рд░ :: =
%> (\ true),
рдкреВрдВрдЫ :: =
~> (\ true)
рдХреЛрдбрд╛рдВрддрд░рдХ
рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рддрд░реНрдХ рдЕрд╕реЗрдВрдмрд▓рд░ рдХрдорд╛рдВрдб рдХреЗ рддрд░реНрдХ рд╣реИрдВ, рдФрд░ рдЧреБрдг рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдХреЗ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рд╣реИрдВред
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ рдирдИ рдкреАрдврд╝реА рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╢реЙрд░реНрдЯ рдореЗрдиреЗрдорд┐рдХреНрд╕ рдФрд░ рд╣реЗрд▓реНрдк рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдорд╛рди рд╡рд┐рд╡рд░рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрдЬрд╛рдп рдХрдорд╛рдВрдб рдХреЗ рдкреВрд░реНрдг рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рд╣реИрд▓реЛ рджреБрдирд┐рдпрд╛
hallo.pl2 program default.Default.Main() meta source="pl2" name="example2" using user.OS.IO;
рдкреАрдПрд▓ / 2 рд╕реНрдХреНрд░рд┐рдкреНрдЯ
PL / 2 рд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЧреЗрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдФрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЪрд░ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдПрдХ рд░реЗрдЦрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ) рдПрдХ рд╕рдорд╛рди рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рд╕рдХреНрд░рд┐рдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд░реНрдЧ рд╡рд┐рд╡рд░рдг:
<?xml version="1.0" encoding="windows-1251"?> <pl2script> <type id="type.class.Scene" save="true"> <help id="class.Scene.help">pl2script/game/scene.htm</help> <system> <class id="class.Scene" domain="type" save="true"> <name> <ascii>Scene</ascii> <local></local> </name> <tip id="class.Scene.tip"> <ascii>Game class as a main class for a game</ascii> <local> </local> </tip> </class> <property id="class.Scene..." domain="string" save="true"> <name> <ascii>prop ...</ascii> <local>prop ...</local> </name> <tip id="class.Scene..tip"> <ascii>tip ...</ascii> <local> ...</local> </tip> </property> </system> </type> </pl2script>
рд╡рд╕реНрддреБ рдХрд╛ рд╡рд┐рд╡рд░рдг:
<?xml version="1.0" encoding="windows-1251"?> <pl2script> <scene id="game."> <name></name> <description> </description> <message> </message> <way id="game.universe" path="Universe/index" enabled="true"></way> <way id="game.solar" path="Solar/index" enabled="true"> </way> <way id="game.earth" path="Earth/index" enabled="true"></way> <way id="game.country" path="country/index" enabled="true"> </way> <way id="game.body" path="body/index" enabled="true"> </way> <way id="game.nature" path="nature/index" enabled="true"> </way> <way id="game.school" path="school/index" enabled="true"> </way> <way id="game.plant" path="plant/index" enabled="true"> </way> <way id="game.university" path="university/index" enabled="true"> </way> </scene> </pl2script>
рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВред
рд╕рдВрджрд░реНрдн:
habrahabr.ru/post/136272 рд╕реНрдХреВрд▓ рдореЗрдВ рдкрдврд╝рддреЗ рд╕рдордп рдХреМрди рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП?
habrahabr.ru/post/176243 "рд░рд╛рд╖реНрдЯреНрд░реАрдп" рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдБ
рдкреНрд░реЛрдЬреЗрдХреНрдЯ -
github.com/palexisru/pl2_rus/wikiINSTEAD рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рд▓реБрдЖ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП
рдУрдИрдИ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж