저는 패턴 매칭을 사용하여 계산기 응용 프로그램을 작성하려고합니다.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();;
그러나, 나는이 같은 상태에있는 경우 :
print_state initial_state;;
그것은 것 : 그런 다음
let initial_state = { lcd=0; lka=Equals; loa=Equals; vpr=0 } ;;
을 내가 함수를 호출 할 때 컴파일 오류가 있습니다. 누구든지 컴파일 실패의 이유를 알 수 있습니다. 덕분에 adv.
Error: Syntax error
unexpected token "("
그런데 왜 패턴이 기록에 일치하는거야? 'initial_state'에서'lcd'를 얻기 위해서는'initial_state.lcd'를 사용하십시오. – ben