私のコード:
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をTermに追加します。私はそれのためにハッシュテーブルと他のものを作成します、しかしこのセクションは私を混乱させます...
- - - - - - - - - - - /編集 - - - - - - - - - - - -
tnx;)