我正在嘗試使用模式匹配來編寫計算器應用程序。Ocaml中的記錄類型模式匹配
兩種主要類型的定義如下:
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();;
但是,如果我有這樣的狀態:
let initial_state = { lcd=0; lka=Equals; loa=Equals; vpr=0 } ;;
然後,當我調用該函數:
print_state initial_state;;
它將有編譯錯誤。任何人都可以知道編譯失敗的原因。謝謝。
Error: Syntax error
unexpected token "("
但是你爲什麼圖案記錄匹配?要從'initial_state'中獲得'lcd',使用'initial_state.lcd'。 – ben