CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[CAML] Problème avec la structure match

Darryone
Darryone
Niveau 10
27 janvier 2013 à 20:12:30

Bonjour,

Je suis en train d'apprendre à utiliser la structure match with en caml mais je suis confronté à un problème. Voilà ma fonction :

let test(s) =
let l = string_length(s) in
match (l,s.[0],s.[l-1]) with
| (0,_,_) -> true;
| (1,_,_) -> true;
| (_,_,s.[0]) -> true;
| (_,_,_) -> false;;

voilà le message d'erreur :

| (_,_,s.[0]) -> true;
^^

Erreur de syntaxe.

#

Je voulais que ma fonction renvoie true si le premier char du string et le dernier sont identique, comment écrire ça ?

Merci d'avance.

chris_27
chris_27
Niveau 10
27 janvier 2013 à 20:21:18

Bonjour,

Il sert à quoi le mot clé "match" ?

PS: la réponse à ta question est dans ma question. :-)

Darryone
Darryone
Niveau 10
27 janvier 2013 à 21:24:49

ça sert à comparer le triplet (l,s.[0],s.[l-1]) avec différents motifs je crois...

Je n'ai pas trouvé plus d'explications sur internet je suis toujours bloqué

chris_27
chris_27
Niveau 10
27 janvier 2013 à 21:31:48

Et non, ça ne sert malheureusement pas à ça un match.

Le switch du C/C++/autre permet de faire ce que tu dis, à savoir faire un filtre selon la valeur d'une variable. Le match du caml a un tout autre but, à savoir faire un filtre sur la structure d'un terme (liste vide VS liste avec au moins un élément, par exemple). Du coup, tu ne peux pas mettre une variable comme "s.[0]" dans le motif d'un match. Pour t'en sortir, il faut que tu utilises un if. :-)

PS: je suis au courant qu'en caml, les booléens et les entiers échappent partiellement à ce que j'ai dit au dessus. Merci de ne pas embrouiller l'OP avec ça.

chris_27
chris_27
Niveau 10
27 janvier 2013 à 21:33:31

Au passage, tu verras que ton code sera bien plus court avec un if. :-)))

Darryone
Darryone
Niveau 10
27 janvier 2013 à 21:50:59

Ok merci :)

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware