2010-06-13 13 views
2

D'après ce que je compris que je peux utiliser dans une expression match ... with pattern-matching avec tuples de valeurs, donc quelque chose commeCorrespondance de tuples

match b with 
    ("<", val) -> if v < val then true else false 
    | ("<=", val) -> if v <= val then true else false 

devrait être correct, mais il me donne une erreur de syntaxe comme si la couldn parenthèse « t être utilisé:

File "ocaml.ml", line 41, characters 14-17: Error: Syntax error: ')' expected

File "ocaml.ml", line 41, characters 8-9: Error: This '(' might be unmatched

se référant à la première clause de correspondance ..

en dehors de cela, puis-je éviter les chaînes de correspondance et d'appliquer des comparaisons en utilisant une sorte de eval de la chaîne? Ou en utilisant directement l'opérateur de comparaison comme premier élément du tuple?

Répondre

7

valval est un mot clé réservé dans OCaml, vous ne pouvez donc pas l'utiliser comme nom de variable. Si vous utilisez autre chose au lieu de val, cela fonctionnera. En note: if condition then true else false est équivalent à condition.