Skip to content

Добро пожаловать на OCamlPortal 🐫!


Вы попали на веб-сайт посвящённый функциональному языку программирования OCaml, созданный с акцентом на выразительность и безопасность, сочетающий функциональное ядро с императивными возможностями и объектной системой.

ocaml
let () = read_line () |> Printf.printf "Привет, %s!\n"
ocaml
let factorial n = 
  let result = ref 1 in 
  for x = n downto 1 do
    result := !result * x 
  done;
  !result
(* val factorial : int -> int = <fun> *)
ocaml
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 — отец и царь сего места;