Добро пожаловать на OCamlPortal 🐫!
Рады всех видеть на нашем веб-сайте, посвящённому языку программирования 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'ом, то рекомендуем пройти наш горячий тур по языку (🇷🇺), раскрывающие все основные концепции языка и разработки на нём. Либо туториал с официального сайте (🇺🇸) в случае владения вами английским языком.
Вообще чтоб познакомится с языком вам не потребуется даже устанавливать тулчейн — пробу пера можно произвести и в онлайн playground'e — OCaml Play или Try OCaml.
Авторы
Этого веб-сайта не было бы без его продуктивного коллектива... Будем невероятно рады увидеть новых авторов, активных участников и просто хороших людей!
- Михаил Л., aka dx3mod — отец и царь сего места;