рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдзрд┐рдХ рдПрдл # рдкреНрд░рдХрд╛рд░ рдХреА рдЕрдкрдиреА рдпрд╛рддреНрд░рд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рдЗрд╕ рдмрд╛рд░ рд╣рдо рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред
рдореИрдВ рдПрдХ рдкреЛрд╕реНрдЯ рдХреИрд╕реЗ рдмрдирд╛рдКрдВ
рдЬрдм рдЖрдк рдПрдХ рдирдпрд╛ F # рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреЛ C # рдореЗрдВ рдЕрдирд╛рдо рд╡рд╕реНрддреБрдУрдВ рдХреА рдпрд╛рдж рджрд┐рд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ C # рдореЗрдВ рдЕрдирд╛рдо рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдиреЗ C # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ F # рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╕рдм рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдЧреБрдгреЛрдВ рдХреЗ рдирд╛рдо рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреА рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЧреБрдгреЛрдВ рдХрд╛ рдкреНрд░рдХрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ, рддреЛ рдЖрдк Let рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдП рдЙрджрд╛рд╣рд░рдг рдХреЛ рдПрдХ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рд╕реЗ, рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдиреАрдЪреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдо рд▓реЗрдЯ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдмрд╛рдВрдзрддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рднреА рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВред
type Person = { Age : int; Sex: string; Name:string; } .... .... .... .... let sam = { Age = 12; Sex="Male"; Name ="Sam" } printfn "let sam = { Age = 12; Sex=\"Male\"; Name=\"Sam\" }" printfn "Person with Age is %i and Sex is %s and Name is %s" sam.Age sam.Sex sam.Name

рдореИрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдХреИрд╕реЗ рдмрджрд▓ / рдХреНрд▓реЛрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
рдЖрдк рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдХреНрд▓реЛрди рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
let sam = { Age = 12; Sex="Male"; Name ="Sam" } let tom = { sam with Name="Tom" } printfn "let tom = { sam with Name=\"Tom\" }" printfn "Person with Age is %i and Sex is %s and Name is %s" tom.Age tom.Sex tom.Name

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ рдЯреЙрдо рдкрд░реНрд╕рди рдХрд╛ рдПрдХ рдирдпрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп рдХреАрд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ред рд░рд┐рдХреЙрд░реНрдб рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЗрд╕ рд░реВрдк рдХреЛ "
рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдФрд░ рдЕрджреНрдпрддрди рд░рд┐рдХреЙрд░реНрдб рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ " рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдлрд┐рд░ рд╕реЗ, рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЧрд▓реЗ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ) рдЕрдкрдиреЗ рдкреЛрд╕реНрдЯ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдХреНрд╖реЗрддреНрд░ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЧреБрдг рд╣реИ рдЬрд┐рд╕реЗ MutableName рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ, рдореБрдЭреЗ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдореНрдпреВрдЯреЗрдмрд▓рдирд╛рдо рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк "<-" рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдирдпрд╛ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
type MutableNamePerson = { Age : int; Sex: string; mutable MutableName:string; } .... .... .... .... //create let sam = { Age = 12; Sex="Male"; MutableName ="Sam" } printfn "let sam = { Age = 12; Sex=\"Male\"; Name=\"Sam\" }" printfn "Person with Age is %i and Sex is %s and Name is %s" sam.Age sam.Sex sam.MutableName //update sam.MutableName <- "Name changed" printfn "sam.MutableName <- \"Name changed\"" printfn "Person with Age is %i and Sex is %s and Name is %s" sam.Age sam.Sex sam.MutableName

рд░рд┐рдХреЙрд░реНрдбреНрд╕ рдХреА рддреБрд▓рдирд╛
рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рд╕рдорд╛рди рд╣реИрдВ рдпрджрд┐ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рд╕рдорд╛рди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
type Person = { Age : int; Sex: string; Name:string; } .... .... .... .... let someFunction p1 p2 = printfn "p1=%A, and p2=%A, are they equal %b" p1 p2 (p1=p2) let sam = { Age = 12; Sex = "Male"; Name = "Sam" } let john = { Age = 12; Sex = "Male"; Name = "John" } let april = { Age = 35; Sex = "Female"; Name = "April" } let sam2 = { Age = 12; Sex = "Male"; Name = "Sam" } do someFunction sam john do someFunction sam april do someFunction sam sam2

рд░рд┐рдХреЙрд░реНрдб рддреБрд▓рдирд╛ рдкреИрдЯрд░реНрди
рдмреЗрд╢рдХ, рдЖрдк рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди (рдЕрдЧрд▓реЗ рджрд┐рди рдЪрд░реНрдЪрд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдореЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдПрдл # рд╡рд┐рдзрд┐ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
type Person = { Age : int; Sex: string; Name:string; } ..... ..... ..... ..... let someFunction (somePerson :Person) = match somePerson with | { Name="Sam" } -> printfn "Sam is in the house" | _ -> printfn "you aint Sam, get outta here clown" let sam = { Age = 12; Sex="Male"; Name ="Sam" } let john = { Age = 12; Sex="Male"; Name ="John" } do someFunction sam do someFunction john

рддрд░реАрдХреЗ рдФрд░ рдЧреБрдг
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо "рд╡рд┐рд╡рд░рдг" рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╣рдореЗрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ (рдЬрд┐рддрдирд╛ рд╣рдо ToString () рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ OOP рд╡рд┐рдзрд┐рдпреЛрдВ рдкрд░ рдЕрдзрд┐рдХ)
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдЕрдЬреАрдм рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА

рдпрд╣ рдЖрд╕рд╛рдиреА рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд░рдЦрдХрд░ рд╣рд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ рддрддреНрд╡ рднреА рдПрдХ рдирдИ рд▓рд╛рдЗрди рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди (рд╕реНрдерд╛рди) рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдПрдл # рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:
type Person = { Age : int; Sex: string; Name:string; } member this.Details = this.Age.ToString() + " " + this.Sex.ToString() + " " + this.Name .... .... .... .... let sam = { Age = 12; Sex = "Male"; Name = "Sam" } printfn "sam Details=%s" sam.Details
