Although it might seem that a language like Haskell has a lot of different objects and constructs, they can all be reduced to functions.
Ceci est un ensemble de conseils raisonnables de présentation des programmes Caml, ainsi que des conseils de programmation qui ont recueilli l'assentiment de programmeurs Caml chevronnés.
version courante, en anglais https://ocaml.org/learn/tutorials/guidelines.html
Ocaml : Fold.
et exemples
Programmation Fonctionnelle - Introduction illustrée en Objective Caml
http://lancelot.pecquet.org/download/science/FProg/poly.pdf
Ocaml: Un langage fonctionnel impératif / fonctionnel
http://pageperso.lif.univ-mrs.fr/~solange.coupet/PF/Caml1.pdf
Récursivité
http://www.enseignement.polytechnique.fr/informatique/INF321/Amphis12/amphi5.pdf
https://www.u-picardie.fr/~furst/docs/3-Recursivite.pdf
Tail recursion https://cseweb.ucsd.edu/classes/wi11/cse130/discussion/ocaml-tailrec.pdf
Programmation en Caml pour Débutants http://www.chargueraud.org/teach/franceioi/prog_caml.pdf
la doc, et
Read this paper by Didier Rémy to understand the theory behind the language http://caml.inria.fr/pub/docs/u3-ocaml/ Using, Understanding, and Unraveling
The OCaml Language
From Practice to Theory and vice versa
An online book on OCaml, a bit old, still a good resource http://caml.inria.fr/pub/docs/oreilly-book/ Développement d'applications avec Objective Caml
http://ocaml.org/learn/books.html
Real World OCaml https://realworldocaml.org/ (full book as html)
Initiation à la programmation fonctionnelle