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

рдорд╛рди рдФрд░ рдХрд╛рд░реНрдп
рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдЗрд╕ рд╕рд░рд▓ рдХрд╛рд░реНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
let add1 x = x + 1
рдпрд╣рд╛рдБ x
рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ:
- рдбреЛрдореЗрди (рд╕реНрдХреЛрдк) рд╕реЗ рдХреБрдЫ рдореВрд▓реНрдп рд▓реЗрдВред
- рдпрд╣ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "
x
" рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдПрдХ рдореВрд▓реНрдп рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд╛рдо " x
" рдЗрдирдкреБрдЯ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП "рдмрд╛рдзреНрдп" рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк 5 рдХреЗ рдЗрдирдкреБрдЯ рдорд╛рди рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рд╣реЛрдЧрд╛: рдЬрд╣рд╛рдВ рднреА " x
" рдореВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рд╣реИ, рдорд╛рди 5 рд╕реЗрдЯ рд╣реИ, рдПрдХ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдореЗрдВ "рдвреВрдВрдвреЗрдВ рдФрд░ рдмрджрд▓реЗрдВ" рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИред
let add1 x = x + 1 add1 5 // ┬лx┬╗ with ┬л5┬╗ // add1 5 = 5 + 1 = 6 // 6
рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдирд╣реАрдВ рд╣реИред " x
" рдПрдХ "рд╕реНрд▓реЙрдЯ" рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде " x
" рдирд╛рдо рдХрд╛ рдПрдХ рдмрд╛рд░ рдХрд╛ рдЬреБрдбрд╝рд╛рд╡ рд╣реИред рдпрд╣ рдорд╛рди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЗрд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛рдиреА рдПрдХ рдмрд╛рд░ рдмрд╛рдЙрдВрдб x
рдХреЛ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ ред рдПрдХ рдмрд╛рд░ рдореВрд▓реНрдп рд╕реЗ рдЬреБрдбрд╝рд╛ рд▓реЗрдмрд▓ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдореВрд▓реНрдп рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕реЛрдЪ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ: рдХреЛрдИ "рдЪрд░" рдирд╣реАрдВ рд╣реИрдВ, рдХреЗрд╡рд▓ рдореВрд▓реНрдп рд╣реИрдВ ред
рдореВрд▓реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп
рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ " add1
" рдирд╛рдо рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ "рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдВрдзрди рд╣реИ рдЬреЛ рдЗрдирдкреБрдЯ рдХреЛ рдПрдХ рд╕реЗ рдмрдврд╝рд╛рддрд╛ рд╣реИред" рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдпрдВ рдЙрд╕ рдирд╛рдо рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
let add1 x = x + 1
, рд╣рдо рд╣рд░ рдмрд╛рд░ F # рд╕рдВрдХрд▓рдХ рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк " add1
" рдирд╛рдо рджреЗрдЦреЗрдВ, рдЗрд╕реЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрджрд▓реЗрдВ рдЬреЛ рдЗрдирдкреБрдЯ рдореЗрдВ 1 рдЬреЛрдбрд╝рддрд╛ рд╣реИред " " add1
" рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдорд╛рди рдХрд╣рд▓рд╛рддрд╛ рд╣реИ ред
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдЙрд╕рдХреЗ рдирд╛рдо рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
let add1 x = x + 1 let plus1 = add1 add1 5 plus1 5
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, " add
" рдФрд░ " plus
" рджреЛ рдирд╛рдо рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдмрдВрдзреЗ рд╣реИрдВред
рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рджреНрд╡рд╛рд░рд╛ рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдорд╛рдирдХ рдлреЙрд░реНрдо domain -> range
ред рдореВрд▓реНрдп рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░:
val functionName : domain -> range
рд╕рд░рд▓ рдореВрд▓реНрдп
рдПрдХ рдСрдкрд░реЗрд╢рди рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ 5 рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдПрдХ "рдирд┐рд░рдВрддрд░" рдСрдкрд░реЗрд╢рди рд╣реЛрдЧрд╛ред
рдЗрд╕реЗ F # рдореЗрдВ рдХреИрд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рд╣рдо рд╕рдВрдХрд▓рдХ рдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ: "рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк c
рдирд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ 5 рд╕реЗ рдмрджрд▓реЗрдВ"ред рдЗрд╕ рддрд░рд╣:
let c = 5
рдЧрдгрдирд╛ рдХрдм рд▓реМрдЯреЗрдЧреА:
val c : int = 5
рдЗрд╕ рдмрд╛рд░ рдХреЛрдИ рдореЗрд▓ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдПрдХ рдЗрдВрдЯ рд╣реИред рдирдП рд╕реЗ - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рдЪрд┐рд╣реНрди рдЗрд╕рдХреЗ рдмрд╛рдж рдШрдЯрд╛рдпрд╛ рдЧрдпрд╛ред рдПрдл # рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрдВрдзрди рдХрд╛ рдПрдХ рдЬреНрдЮрд╛рдд рдореВрд▓реНрдп рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдореЗрд╢рд╛ 5 рдирдВрдмрд░ рдкрд░ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдПрдл # рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░, рдпрд╛, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред
рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдХ рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рди рдХреЛ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рд╕рд░рд▓ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИрдВ:
val aName: type = constant // -
рд╕рд░рд▓ рдореВрд▓реНрдп рдмрдирд╛рдоред рдлрд╝рдВрдХреНрд╢рди рдорд╛рди | рд╕рд░рд▓ рдЕрд░реНрде рдмрдирд╛рдоред рдореВрд▓реНрдп рдХрд╛рд░реНрдпреЛрдВ
рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдПрдл # рдореЗрдВ, рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдЬреИрд╕реЗ рд╕реА # рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╕рд░рд▓ рдореВрд▓реНрдпреЛрдВ рдФрд░ рдореВрд▓реНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╣реБрдд рдХрдо рдЕрдВрддрд░ рд╣реИред рджреЛрдиреЛрдВ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдп рд╣реИрдВ рдЬреЛ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ ( let
рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ), рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдЬрд▓реНрдж рд╣реА рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдорд╛рди рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ , рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕реЛрдЪ рдХреЗ рдкреНрд░рдореБрдЦ рдкрд╣рд▓реБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореВрд▓реНрдп рдФрд░ рдПрдХ рдореВрд▓реНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмреАрдЪ рдереЛрдбрд╝рд╛ рдЕрдВрддрд░ рд╣реИред рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣рдореЗрд╢рд╛ рдбреЛрдореЗрди рдФрд░ рд╕реАрдорд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдореЗрдВ "рд▓рд╛рдЧреВ" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореВрд▓реНрдп рдХреЛ рдмрдВрдзрди рдХреЗ рдмрд╛рдж рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпрджрд┐ рд╣рдо "рдирд┐рд░рдВрддрд░ рдлрд╝рдВрдХреНрд╢рди" рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ 5 рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
let c = fun()->5 // or let c() = 5
рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:
val c : unit -> int
рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ:
val c : int = 5
unit
, рдлрд╝рдВрдХреНрд╢рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдФрд░ рдЕрдирд╛рдо рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдмрд╛рдж рдореЗрдВ рджреА рдЬрд╛рдПрдЧреАред
"рдорд╛рди" рдмрдирд╛рдо "рд╡рд╕реНрддреБрдУрдВ"
рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдЬреИрд╕реЗ рдХрд┐ F #, рдЬреНрдпрд╛рджрд╛рддрд░ рдЪреАрдЬреЛрдВ рдХреЛ "рдорд╛рди" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рдЬреИрд╕реЗ рдХрд┐ C #, рдЬреНрдпрд╛рджрд╛рддрд░ рдЪреАрдЬреЛрдВ рдХреЛ "рдСрдмреНрдЬреЗрдХреНрдЯ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред "рдЕрд░реНрде" рдФрд░ "рд╡рд╕реНрддреБ" рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ?
рдорд╛рди, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдКрдкрд░ рджреЗрдЦрд╛, рдбреЛрдореЗрди рдХрд╛ рдПрдХ рд╕рджрд╕реНрдп рд╣реИред рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдбреЛрдореЗрди, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдбреЛрдореЗрди, рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХрд╛ рдбреЛрдореЗрди рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рдореИрдк рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореВрд▓реНрдп рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ (рдкрд░рд╕реНрдкрд░ рдирд╣реАрдВ)ред рдФрд░ рдЕрд░реНрдереЛрдВ рдХрд╛ рдЙрдирд╕реЗ рдЬреБрдбрд╝рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИред
рд╡рд┐рд╣рд┐рдд рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрдмрдВрдзрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ (рд╡рд┐рдзрд┐рдпреЛрдВ) рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдПрдХ рд░рд╛рдЬреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╣реЛ), рдФрд░ рдЖрдВрддрд░рд┐рдХ рдСрдкрд░реЗрд╢рди рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рджреНрд╡рд╛рд░рд╛ ("рдбреЙрдЯ" рдиреЛрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдПрдл # рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрджрд┐рдо рдореВрд▓реНрдпреЛрдВ рдореЗрдВ "рд╡рд╕реНрддреБ" рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдмрд┐рдВрджреБ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд▓рдВрдмрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
┬лabc┬╗.Length
рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдПрдл # рдореЗрдВ рдорд╛рдирдХ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП "рдСрдмреНрдЬреЗрдХреНрдЯ" рд╢рдмреНрдж рд╕реЗ рдмрдЪреЗрдВрдЧреЗ, рдЗрд╕реЗ рдкреВрд░реНрдг-рд╡рд┐рдХрд╕рд┐рдд рд╡рд░реНрдЧреЛрдВ рдпрд╛ рдЕрдиреНрдп рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЪрдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдирд╛рдордХрд░рдг рдорд╛рди
рдореВрд▓реНрдп рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдирдХ рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛рдПрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ + рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреБрдЫ рдЬреЛрдбрд╝ рд╣реИрдВ:
- рдЖрдк рдкрд╣рд▓реЗ рд╡рд░реНрдг рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдирд╛рдо рдХреЗ рдХрд┐рд╕реА рднреА рднрд╛рдЧ рдореЗрдВ рдПрдХ рдПрдкреЙрд╕реНрдЯреНрд░реЙрдлрд╝ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
A'b'c begin' //
- рдмрд╛рдж рд╡рд╛рд▓реЗ рдорд╛рдорд▓реЗ рдХреЛ рдЕрдХреНрд╕рд░ рдореВрд▓реНрдп рдХреЗ "рдЕрд▓рдЧ" рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
let f = x let f' = derivative f let f'' = derivative f'
рдпрд╛ рдореМрдЬреВрджрд╛ рдХреАрд╡рд░реНрдб рд╡рд╛рд▓реЗ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рдЪрд░ рдХреЗ рд▓рд┐рдП
let if' btf = if b then t else f
рдЖрдк рдЗрд╕реЗ рдорд╛рдиреНрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбрдмрд▓ рдмреИрдХрдЯрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
``this is a name`` ``123`` //
рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдПрдХ рдбрдмрд▓ рдмреИрдХрдЯрд┐рдХ рдЯреНрд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ:
- рдЬрдм рдЖрдкрдХреЛ рдХреАрд╡рд░реНрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
let ``begin`` = ┬лbegin┬╗
- рдЬрдм рдЖрдкрдХреЛ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЗ рдирд┐рдпрдореЛрдВ, рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдпрд╛ рдмреАрдмреАрдбреА рд╕реНрдЯрд╛рдЗрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдкреНрд░рд▓реЗрдЦрди рдЬреИрд╕реЗ рдХрдХрдбрд╝реА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
let ``is first time customer?`` = true let ``add gift to order`` = () if ``is first time customer?`` then ``add gift to order`` // - let [<Test>] ``When input is 2 then expect square is 4``= // code here // BDD clause let [<Given>] ``I have (.*) N products in my cart`` (n:int) = // code here
C # рдХреЗ рд╡рд┐рдкрд░реАрдд, F # рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдорд╛рди рдПрдХ рд▓реЛрдЕрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ, рди рдХрд┐ рдЕрдкрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░ ( PascalCase
, PascalCase
рдирд╣реАрдВ), рдЬрдм рддрдХ рдХрд┐ рд╡реЗ рдЕрдиреНрдп .NET рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рдХрд╛рд░ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдкреВрдВрдЬреА рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рд╢реБрд░реБрдЖрдд рдореЗрдВ)ред
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди
F # рдХреЗ рд▓рд┐рдП рдХрдИ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ C # рдпрд╛ Java рдЕрдиреБрднрд╡ рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдВрдХ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк F # рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ:
F # рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЗ рднреА рд╡рд░реНрдгрд┐рдд рд╣реИрдВред
рдЕрдВрдд рдореЗрдВ, рдПрдл # рд╕рдореБрджрд╛рдп рдмрд╣реБрдд рд╢реБрд░реБрдЖрддреА рдЕрдиреБрдХреВрд▓ рд╣реИред рд╕реНрд▓реИрдХ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рдЪреИрдЯ рд╣реИ, рдПрдл # рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рд╢реБрд░реБрдЖрддреА рдХрдорд░реЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛ рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ ред рд╣рдо рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ!
рд░реВрд╕реА рднрд╛рд╖реА рд╕рдореБрджрд╛рдп F # рдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдирд╛ рди рднреВрд▓реЗрдВ! рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рднрд╛рд╖рд╛ рд╕реАрдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЙрдирд╕реЗ рдЪреИрдЯ рд░реВрдо рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА:
рдЕрдиреБрд╡рд╛рдж рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
@Kleidemos рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд
рдЕрдиреБрд╡рд╛рдж рдФрд░ рд╕рдВрдкрд╛рджрдХреАрдп рдкрд░рд┐рд╡рд░реНрддрди рдПрдл # рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд░реВрд╕реА рднрд╛рд╖реА рд╕рдореБрджрд╛рдп рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рд╕реЗ рдХрд┐рдП рдЧрдП рдереЗред рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕ рд▓реЗрдЦ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо @schvepsss рдФрд░ @ рд╢рд╛рд╡рд░ рдХрд╛ рднреА рд╢реБрдХреНрд░рд┐рдпрд╛ рдЕрджрд╛ рдХрд░рддреЗ рд╣реИрдВ ред