??????? ?????????? ?????????????? ????? ????? ??????? ??????? ?? ?? ???????? ???????????? ????? ???????? ? ???. ? ??????? ??????? ?? ????????? ??? ????, ??? ?????????????? ???? ???????? "?????????", ? ?? ?? ?????? ???????? ????? ???????????, ?? ??????? ???? ?????????? ??????????????? ????, ??? ????????? ??? ?? ????? ?????????? ???????? ?????? ?????????? ? ???, ????? ???????????? ???????? ??? ?????????????? ???. ??? ????????? ??? ?????????? ?? ?????? ??????????? ? ???? ??????????? ???????, ? ? ????? ?????? ??? ??? ????? ?????????????, ?????? ?????????????? ??? ?? ????? ??????????. ?? ? ?????????? ????????? ??????? ????????.
??????? ??? ?????? ? ?????????, ??????? ????? ????????? ?????? ????????? ???????? ? ????????? ?? ???? ????, ????? ? ???????? ???????? ????? ????? ??????? ???????????? ?????? ???????? - ??????? ?? ??????? ???????? ? ????????, ? ?????? - ???????? ???????? ?????????. ????????, ??? ?????????????? ???? ? ????? ?????? ???????? ?? ??????? ???????.
?? ????? ???? ???????? ????????????? ?????????? ?????????????? ????? ?? ???? ????? ?????? ???? ??? ????? ???. ?? ???? ????????? ???????? - expression problem. ?? ??? ? ???????? ???? ???? ????????, ?? ?????? ???? ? ?????-?????? ??????? - ???? ?? ????? ???? ??????, ??? "?????? ???" ?? ??????? ??? ??? ?????? ? ?? ?????????? ? ??????? ????????????? ????.
?????? ??? ?????? ????????.
???? ????? ???? ???????????????? OCaml, ??????? (???????, ?? ????? ?? ? ???????) ??????????? F#. (????? ?? ??????? - F# ????????????? ?????????? ? ??????????? ????? ?????? OCaml ??? ????????? .NET, ?? ???????????? ?? ???? ??????? ?????????). OCaml, ??? ? ???????? ??????????????? ????? ?? ????????? ML, ???????????? "????????????" ?????????????? ????. ?? ? ?????-?? ?????? ? OCaml ???????? ? ?????? ??? ?????? - ? ??????????? ????????? ??????????? ???????.
??? ?? ??? ?????? ??????? ????????? ?? ???????. ????????? ?????????? ??? ?? ?????????? ??????? ?? OCaml ? ?????????????? ???? ????? ??????????? ?????????:
let l = `Laptop 14.2;; let res = match l with | `Laptop _ -> "We have a laptop" | `Cellphone _ -> "We have a cellphone";;
?? ?????? ?????? ??? ????? ?????? ?? F#, ???? ?? ??????? ?????????????? "?????? ??????????". ?? ????????, ? ?? ????? ?????? ?? ??????? ??? ?? ?????????? ?????? ??????????????? ????? (?? ???, ??? ???, ???????????? ?????????). ? ? ???-?? ? ????, ??? ???????? ?????????? ???.
??????? ?? ?????? "????? ??????? ??????? ?????????????? ???? ????????????", OCaml ???????? ? ????????-???? ???????????? ???????. ? ??????? ??????????, ??? ?? ???? ????? ????????? - ?? ??? ??? "?????????", ?? ???? ????! - ???? ???? ????-???????????? ?????????????? ???. ???? ??? ???????? ??? ????????? ???????????? - ???? ??, ??????? ??? ?????? ????????? ?????????. ?? ???? ??????? ??? ??????? ????????????? ??????? ????????????? ?????????????? ??? - ? ???????????? ?????????? ?? ??? ?? ??????????? ?? ????.
??????????? ? ?????? ??????? - ??? ?????? ????? ???????, ???? ?? ??????? ???????? ? ????? ??????????? ??????? ????? ????? ??? ? ????????? ?? ??????????? ??????. ?????? ????????, ??? ???????? ? ??? ??? ????:
let res = match l with | `Laptop _ -> "We have a laptop" | `Cellphone _ -> "We have a cellphone" | `Monitor _ -> "We have a monitor";;
?????? ? ??????????????? ???? ???? ???? ????????? ????????. ? ?????? ? ????????? ??????????????? ?????? ??? ?????? ????? ????????, ????? ???????????? ???????? ? ???? ??? ??? ???? ?????????????? ???. ??????????????, ?????????? ?????? ???? ?? ??????? ???????? (?????????? ?? F#) ???? ????????? ????????? ? ????????? - ???? ??? ?? ????????, ??? ???????? ?? ??????? ??????, ????? ????????? ? ????????? ?????????, ????? ????, ??? ?????????? ??????????? ??? ???!
????? ?? ???????? ? ????? ??????????. ??????????? ??? ???????????? ?? ???????? ?? ?????, ? ??????????????, ???, ??????????? ????, ??? ?? ??? ????????? ??? ??????. ??? ????? ???? ???-?????? ??????? ??? ? ????????? `Tablet? ????? ?????? ??????? ??????????. ????? ???????? ????? ??? ???????? ?????????? ???? ??? ???:
let res = match l with | `Laptop _ -> "We have a laptop" | `Cellphone _ -> "We have a cellphone" | `Monitor _ -> "We have a monitor" | _ -> "We have an unknown product";;
?????, ??? ????? ????????? ?????? ???? ???????, ???? ???? ?? ?? ??????? ? ML-???????? ???????????. ?????????? ?? ?????? ???????? ??????????? ???????, ??????? ????? ??????????? ?? ???? ???????, ????? ?????? ????????, ???????? ??? ???????? ??? ???????? ???-???? ??????. ???????? ? ???, ??? ?????? ??? ???????? ?????? ??? ?????? - ?? ??? ???????? ????????? ? ???, ??? ???????????? ????????? ? ?????????? ????? ???????? ? ??????????? ??????? ?? ????? ??????????.
?????? ???????? ???? ??????????? ?? ???? ?????, ??? ???????? ?? ??????? ???????????????? ??????????. ? ??? ?????????? ?????????????, ?? ?????????? ????? ?? ?????? ??? ???????????, "???????" ?? ?? ????? ??????????? ??????? ??? ?? ??????????? ? ??? "????????????" ?????. ? ??? ???????? ? ????? ??? ??????? (?????? ?? ???????????? ??????????-?????????????? ??????):
let l = `Monitor 24.0 let res = match l with | `Laptop _ -> "We have a laptop" | `Cellphone _ -> "We have a cellphone" | `Monitol _ -> "We have a monitor" | _ -> "We have an unknown product";;
??? ??????, ??? ????????? ??????????? match ? ???????? ???????? ? ????? Monitor, ? ?????????? ????? ?? ?????? ??? ??? ??????. ??? ????? ????????????? ??????? ? ???????? ? ?????????? ????????? ? ???-?????.
????????, ??? ??????????? ???????? ??? ?? ?? ??????? ????????. ???? ???????? ???????????? ?????????????? ????? ??????????? ? ????????????? ??????????, ?? ??????????? ???????? ??? ??? ???????? - ????????? ???????????, ??? ??????????? ???-?? ????????????????? ? ?????????? ??? ?? ?????????????.
???? ????? ??????, ??? ???? ? ???????????? ?????????? - ??? ?? ????? ???? ???? ?? ??????????? ??????????, ? ??????? ???? ????? ???? ???? ???. ???? ???????, ??? ?????? ??????? ?? ?????? ?????????. ? ??? ?? ????? ? ???????????? ??????????? ?????????? ? ??????????, ??? ?????, ??? ?? ?? ??????????, ?? ???????? ? ????? ? ??? ?? ?????, ??? ?????? ??? ???????????? ??????????? ????????? ?? ???. ?????????? ?????? ?????? ??????? ?? ?????????????? ?????, ??????? ? ????????? ?????? ???? ????? ??????????? ????????????, ??? ?????? ? ???, ? "??? ???? ????? ????????" ??? ????? ??????????? ?????????. ??? ???? ????? ????????, ??? OCaml, ????, ? ??????? ???????????? ????????? ??????????? ?????????, - ??? ????? ???????, ???? ????? ??? ??????????, ??????????-?????????????? ????, ? ??????? ???? ???????????? ?????? ?????????????? ????????? ??? ????? ? ???????????? ?????. ????????, ???, ???? ??????????? ???????? ? ?????? ?????????????? ???????? "??????????" ?????????????? ?????, ? ????? ???? ??? OCaml ??? ?? ????? ?????? ???????????.
? ??? ???? ?? ? ??? ??? ???????????-?????????????? ?????
Ela, ? ??????? ? ??? ???????? ?????, ??? ?? ???????????? ????????? ????????? ? ??? ???? ???????? ???????????-?????????????? ??????. ??????????????? ??? ???????? ?? ?? Ela ????????? ???????:
let l = Monitor 24.0 let res = match l with Laptop = "We have a laptop" Cellphone = "We have a cellphone" Monitor = "We have a monitor" _ = "We have an unknown product"
?????? ??????, ??????? ?? ???? ? ???? ???????. ????????, ? Ela ?? ???????????? ???????? ????? ????????? ???????????? ???????????? ???????? - ? ??? ?????? ??? ?????, ??? ??? ??? ????????????? ???????? ???????????? ?????????????? ????? ?? ????????????? ??????????? ?????????. ???????????? ?????????????? ???? Ela ?? ???????????? - ?? ??? ? ?????????? ? ?????? ???????????? ?????????. ??????? ? Ela ???????????? ?????? ???????, ???????????? ??? ?????????????? ?????? ?????????? - ????? ?????????????, ???????????? ? ????????? ?????, ????????? ?????????.
?????????? ??????? ? Ela - ??? ????? ??????? ?????????. ? ??? ???????? ???? ??????????? ?????????? ???????????? ????? ? ?????? ???????? (??? ???? ??????? ????????? ?????, ??? ?????????? ????????). ?????? ????? ???????????? ????? ???? ???????????????? ? ??????? ???????-????????. ??? ??? Ela ???????????-?????????????? ????, ? ? ??? ? ??? ? ?????-?? ?????? ???? ???? ????-???????????? ???, ????????? ??????????? ????????? ?? ???????? ? ???? "??????" ????????.
?????????? ?????? ????????????? ????????? ??? ?? ????????? ???:
let getOdd x | r > 0 = Odd r | else = Even where r = x % 2
?????? ??????? ?????????, ???????? ?? ?????????? ? ??? ????? ?????? ? ?????????? ?????????, ????????? ???????. ????? ???????? ????????? ????????? ????????? ? nullable-?????? ? C#. ? ????????????? - nullable-??? ??? ?????? ????? "??????????????????" ?????? "???????????????" ????????.
INTERNATIONAL GAME TECHNOLOGY INTERNATIONAL BUSINESS MACHINES (IBM) INTERDIGITAL COMMUNICATIONS INTEL INSIGHT ENTERPRISES