Добро пожаловать на OCamlPortal 🐫!
Вы попали на веб-сайт посвящённый функциональному языку программирования OCaml, созданный с акцентом на выразительность и безопасность, сочетающий функциональное ядро с императивными возможностями и объектной системой.
let () = read_line () |> Printf.printf "Привет, %s!\n"
let factorial n =
let result = ref 1 in
for x = n downto 1 do
result := !result * x
done;
!result
(* val factorial : int -> int = <fun> *)
let rec chunks = function
| [] -> []
| [_] -> failwith "not have item for pair"
| x::y::tl -> (x, y) :: chunks tl
(* val chunks : 'a list -> ('a * 'a) list = <fun> *)
List.init 10 Fun.id |> chunks
(* - : (int * int) list = [(0, 1); (2, 3); (4, 5); (6, 7); (8, 9)] *)
Тут вы найдете рецепты, статьи, примеры и многое другое, в том числе горький опыт его авторов. Наслаждайтесь...
С чего начать? 🤔
Так таковой точки входа на сайте нету, он организован по большей части нелинейно — просто переходите к тому, что вас интересует.
Новичок? 🐥
Если вы ещё совсем не знакомы с OCaml'ом, то рекомендуем обратить на официальную документацию и в особенности на раздел Learn на сайте.
Вообще чтоб познакомится с языком вам не потребуется даже устанавливать тулчейн — пробу пера можно произвести и в онлайн playground'e — OCaml Play или Try OCaml
Авторы
Этого веб-сайта не было бы без его продуктивного коллектива... Будем невероятно рады увидеть новых авторов, активных участников и просто хороших людей!
- Михаил Л., aka dx3mod — отец и царь сего места;