J'essaie d'utiliser la correspondance de modèle pour écrire une application de calculatrice.Enregistrement de correspondance de type d'enregistrement dans Ocaml
Deux grands types définis comme ci-dessous:
type key = Plus | Minus | Multi | Div | Equals | Digit of int;;
type state = {
lcd: int; (* last computation done *)
lka: key; (* last key actived *)
loa: key; (* last operation actived *)
vpr: int (* value print on the screen *)
};;
let print_state s =
match s with
state (a,_,_,d) -> print_int a; //Here has the compile error
print_newline();
print_int d;
print_newline();;
Cependant, si j'ai un état comme:
let initial_state = { lcd=0; lka=Equals; loa=Equals; vpr=0 } ;;
Puis, quand j'invoque la fonction:
print_state initial_state;;
Il sera avoir l'erreur de compilation. Tout le monde peut dire quelle est la raison de la compilation infructueuse. Merci à adv.
Error: Syntax error
unexpected token "("
Mais pourquoi êtes-vous filtrage sur les dossiers? Pour sortir le 'lcd' de' initial_state', utilisez 'initial_state.lcd'. – ben