パターンマッチングを使用して電卓アプリケーションを作成しようとしています。Ocamlのレコードタイプパターンマッチング
2つの主要なタイプは、以下のように定義:
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();;
しかし、私のような状態がある場合:
print_state initial_state;;
それは以下となります。そして、
let initial_state = { lcd=0; lka=Equals; loa=Equals; vpr=0 } ;;
を私は機能を呼び出すときコンパイルエラーがあります。誰でもコンパイルに失敗した理由を知ることができます。ありがとうございました。
Error: Syntax error
unexpected token "("
しかし、なぜあなたは、パターン記録に一致していますか? 'initial_state'から' lcd'を取得するには、 'initial_state.lcd'を使います。 – ben