2009-09-14 5 views
3

Si j'ai défini les types suivants:OCaml: Vérifier la liste des dossiers d'adhésion

type category = Noun | Verb | Adjective | Preposition;; 
type transformation = {start: category; fin: category};; 

Quelle est la meilleure façon de répondre à la question « est le dossier où start = Noun dans la liste des transformations de type

?

Un peu comme

let un = [{start= Noun; fin= Noun}; {start= Verb; fin= Adjective}];;  
List.mem {start = Noun; _} un;; 

Sauf que la syntaxe ne semble pas fonctionner.

Répondre

5
List.exists (fun x -> x.start = Noun) un 

List.mem peut être considéré comme un simple cas particulier de List.exists, où List.mem x ys est équivalent à List.exists ((=) x) ys. Vous pouvez donc utiliser List.exists pour des critères d'adhésion plus généraux.

Questions connexes