OCaml имеет списки, построенные в:
Список целых чисел: [1; 2; 3; 4; 5] ;; возвращает: int list = [1; 2; 3; 4]
Список строк: ["this"; "that"; "other"] ;; возвращает: string list = ["this"; "что"; "Другой"]
Или вы можете использовать оператор минусы :: построить списки:
1 :: 2 :: 3 :: [] ;; возвращает: int list = [1; 2; 3]
Чтобы получить голову (первый элемент) списка:
List.hd [1; 2; 3]
возвращается 1
Чтобы получить хвост списка (все пункты после первого пункта)
List.tl [1; 2; 3] возвращает: int list = [2; 3]
Кроме того, вы можете посмотреть на то, как списки реализованы в стандартной библиотеке OCaml, глядя на:
[место установки для OCaml] /lib/ocaml/std-lib/list.ml
Это домашнее задание, если это возможно? Если это так, отметьте его как таковой. –
Это не домашнее задание, просто чтение книги по структурам данных и попытка попытаться реализовать это в Ocaml. –