내 코드 :OCaml의 파서 코드
Term :
...
| VAR { try Hashtbl.find var_table $1
with Not_found ->
printf "no such variable '%s'\n" $1; 0.0 } /*(Line:75)*/
...
와 때 나는 내가 볼 ocamlc -c parser.ml
에서, 실행되었다
Error: This expression has type float but an expression was expected of type
Syntax.term
모두가 나에게이 문제를 증명하는 데 도움이 될 수 있습니다 ?? 75 행의 유형이 Syntax.ml 및 Syntax.mll에서 정의하는 Syntax.term 유형과 일치하지 않는다는 것을 알고 있지만이를 증명하기 위해 Syntax.term에 0.0 유형을 지정하려고합니다. 나는 그것을 할 수 있냐?
------------------ :
용어 유형 :
type term =
TmTrue
| TmFalse
| TmIf of term * term * term
| TmAnd of term * term
| TmOr of term * term
| TmXor of term * term
| TmSum of term * term
| TmSub of term * term
| TmMult of term * term
| TmPow of term * term
| TmZero
| TmSucc of term
| TmPred of term
| TmIsZero of term
| TmNot of term
모든 것이 정확합니다. 여기서 코드에 과제를 추가하고 싶습니다. 위의 코드와 함께 VAR을 추가합니다. 나는 해시 테이블과 다른 것들을 만들지 만,이 섹션은 나를 혼란스럽게 만든다. ...
----------------------/EDIT ---- --------------------
TNX)
좋은 답변을 얻으려면'Syntax.term'이 어떻게 보이는지 보여줘야합니다. 부동 소수점을 나타내는 생성자가있을 것으로 기대합니다. 당신은 결과를 구성하기 위해 이것을 사용할 것입니다. 값'0.0' 자체는'float' 타입입니다. 그건 당신이 바꿀 수있는 것이 아닙니다. –
내 용어 유형 : 유형 term = TmTrue | TmFalse | 용어의 기간 * 용어 * 용어 | 용어의 기간 * 용어 | 용어의 기간 * 용어 | 용어의 TmXor 또는 용어 | 용어의 기간 * 용어 | 용어의 용어 * 용어 | 용어의 기간 * 용어 | 용어의 용어집 * 용어 | TmZero | 용어의 TmSucc | 용어의 TmPred | 용어의 TmIsZero | 용어 의 TmNot 나는 인쇄하지 싶다 "그런 변수를 ..."만 0.0 장치와 다른 내 타입에 추가 요소는 ... 당신이 말하는 경우 그래서 라인 (75)이있을 수 있습니다 변경 .. 당신의 도움에 대한 TNX :) – Vandermond
질문을 업데이트하여 해당 정보를 포함하십시오. – didierc