OCaml has lists built in:
List of integers:
[1;2;3;4;5] ;;
returns: int list = [1; 2; 3; 4]
List of Strings:
["this";"that";"other"];;
returns: string list = ["this"; "that"; "other"]
Or you can use the cons operator :: to build lists:
1::2::3::[];;
returns: int list = [1; 2; 3]
To get the head (first item) of a list:
List.hd [1;2;3]
returns 1
To get the tail of a list (all items after the first item)
List.tl [1;2;3]
returns: int list = [2; 3]
Also, you can have a look at how lists are implemented in the OCaml standard library by looking at:
[installation location for OCaml]/lib/ocaml/std-lib/list.ml