рддрд╛рд░реНрдХрд┐рдХ рддрддреНрд╡
рдЕрдЪреНрдЫрд╛ рджрд┐рди рд╣реИ, рдореИрдВ рдЧреЛрд▓рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рд▓рд┐рдЦрдиреЗ рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЛ рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рдо рдЖрдПрдВрдЧреЗред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдХреЛрдИ рдирдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╕рд░рд▓ рд▓реЙрдЬрд┐рдХ рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рддреНрдп рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╕рдордп рдмрд░реНрдмрд╛рдж рди рдХрд░реЗрдВ рдФрд░ рджреВрд╕рд░реЗ рднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВред
рд▓реЙрдЬрд┐рдХ рдЧреЗрдЯ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЗрдирдкреБрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рд╣рдо рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рдореЙрдбрд▓рд┐рдВрдЧ рдЧреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧреЗрдЯреНрд╕ рдХреЗ рдЗрдирдкреБрдЯ, рдЖрдЙрдЯрдкреБрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХреЗрд╡рд▓ рд╕рдВрдХреЗрддреЛрдВ 0 рдФрд░ 1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЪреВрдВрдХрд┐ рд╣рдо рдЧреЛрд▓рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Go рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
func ( ) {
рдмрдлрд░
рдпрд╣ рдПрдХ рдЗрдирдкреБрдЯ рдФрд░ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рд╡рд╛рд▓рд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрддреНрд╡ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдпрд╛ рджреЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдЗрд╕реЗ рдХрдВрдбрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдмрдлрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдп рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
func Buf(v bool) bool { return v }
рдкрд▓рдЯрдиреЗрд╡рд╛рд▓рд╛
рдПрдХ рд╣реА рдмрдлрд░, рдХреЗрд╡рд▓ рдЖрдЙрдЯрдкреБрдЯ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред
рдкрд▓рдЯрдиреЗрд╡рд╛рд▓рд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
func Inv(v bool) bool { return !v }
рдпрд╛
рдЖрдЙрдЯрдкреБрдЯ рдкрд░ 1 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрддреНрд╡ рдХреЛ 1 рдХреЗ рдмрд░рд╛рдмрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
func Or(v, s bool) bool { return v || s }
рдФрд░
рдпрд╣ рд╣рдореЗрд╢рд╛ 1 рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИ, рдЬрдм 1 рдХреЛ рдЗрд╕рдХреЗ рд╕рднреА рдЗрдирдкреБрдЯреНрд╕ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИ, рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ 0 рджреЗрддрд╛ рд╣реИред
func And(v, s bool) bool { return v && s }
рдЕрдирдиреНрдп рдпрд╛
рдЖрдЙрдЯрдкреБрдЯ рдкрд░ 1 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЗрдирдкреБрдЯ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдХреЗрддреЛрдВ (0 рдФрд░ 1) рдпрд╛ (1 рдФрд░ 0) рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣ рдСрдкрд░реЗрд╢рди рдЙрдкрдпреЛрдЧреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рджреЛ рдЪрд░ рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
func Xor(v, s bool) bool {
рдпрд╛ рдирд╣реАрдВ
рдпрд╣ рдПрдХ OR рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЗрдиреНрд╡рд░реНрдЯрд░ рдЗрд╕рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рд╕реЗ рд╣рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдорд┐рд▓рддрд╛ рд╣реИред
func Nor(v, s bool) bool { return !(v || s) }
рдФрд░ рдирд╣реАрдВ
рдПрд▓рд┐рдореЗрдВрдЯ рдПрдВрдб рдПрд▓рд┐рдореЗрдВрдЯ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рд╕рд┐рдЧреНрдирд▓ рдЙрд▓рдЯрд╛ рд╣реЛрддрд╛ рд╣реИред
func Nand(v, s bool) bool { return !(v && s) }
рд╡рд┐рд╢реЗрд╖ рдпрд╛ рдЙрд▓рдЯрд╛ рдХреЗ рд╕рд╛рде
рддрддреНрд╡ OR рддрддреНрд╡ рдХреА рддрд░рд╣ рд╣реА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рд╕рдВрдХреЗрдд рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдЙрд▓рдЯрд╛ рд╣реЛрддрд╛ рд╣реИред
func Xnor(v, s bool) bool {
рдЕрдм рдЬрдм рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЧреЗрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЪреАрдЬреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред рд╣рдорд╛рд░рд╛ рдкреИрдХреЗрдЬ рдкрджрд╛рдиреБрдХреНрд░рдо рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрдВрдкреНрдпреВрдЯрд░ рдЕрдореВрд░реНрдд рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛ред рд╕реНрд░реЛрдд рдХреЛрдб
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред