Comment puis-je réaliser l'intersection de deux listes en OCaml?

Quand j'ai deux listes en OCaml, par exemple

e1 = [3; 4; 5; 6; 7]

et

e2 = [1; 3; 5; 7; 9]

Est-il un moyen efficace pour obtenir l'intersection de ces deux listes?
I. e.:

[3; 5; 7]

Parce que je n'aime pas la numérisation de chaque élément de la liste e2 pour chaque élément de la liste e1, créant ainsi un grand Oh de l'ordonnance n^2.

OriginalL'auteur vstrien | 2010-03-04