Je veux écrire une fonction qui pourrait vérifier chaque élément d'une liste est vrai ou faux. Si au moins un élément est faux, il retournera vrai, de sorte que:Comment accéder à une liste dans OCaml
assert_eq "checkFalse [true; false; true]" (checkFalse [true; true; true]) false; assert_eq "checkFalse [false; false]" (checkFalse [false; true]) true; Je suis un débutant absolu dans OCaml et je ne sais pas comment aborder cela. J'ai essayé d'utiliser une boucle, quelque chose comme:
let rec checkFalse (bools: bool list) : bool =
for i = 0 to bools.length do
if bools.length == false then false
else... (I don't know how to continue)
Ensuite, il dit "champ d'enregistrement Unbound ...."
J'ai aussi essayé d'utiliser comme trouver: if (find false bools != Not_found) then true else false
Mais mes voies a fait ne fonctionne pas. Je viens d'un arrière-plan Java.
Merci beaucoup!
Vous avez rarement besoin de spécifier des types dans OCaml.'let rec checkFalse bools =' est identique à ce que vous avez écrit. –
@Niki: Cependant, il peut être utile pour les débutants, car il pourrait faciliter les messages d'erreur. –
Si vous êtes un débutant, vous ne devriez jamais utiliser '==' et '! =', Mais seulement '=' et '<>', qui testent l'égalité de la manière que vous attendez. –