Ocamlでは、部分的なタイピング情報があるかどうかを知りたいと思います。コンパイルされないプログラムのために、トップレベル/コンパイラのいくつかの既存の機能によって引き出すことができますか?私に説明させてください。部分的に推定された型情報を見ることができますか?コンパイルされないプログラムのためのOcamlトップレベル/コンパイラから?
Ocamlでは、推論された型は-annotファイルで取り出せることはよく知られています。しかし、時にはタイプミスのためにコンパイルされないコードがあります。これは、人工的な例は
# let x =
let y = 5 in
not y;;
Characters 32-33:
not y;;
^
Error: This expression has type int
but an expression was expected of type bool
だろうコードのこの作品のプログラマは、すなわち、よくこのメッセージの第二の部分を理解しておく必要があり、このパターン
"This expression has type A, but was expected type B"
の、トップレベルにエクスポートエラーが発生します 「yではない」部分のために、「yはbool型が必要です」。しかし、彼女はこのエラーメッセージの第1部を理解するのが難しいかもしれません。この "y"がどのように "int"型であると推測されていますか?したがって、型の競合が発生する前に、推論型の部分集合を持つことは興味深いでしょう。上記の例では、最初の "y"( "let y = 5"から)がint型であることを通訳者に伝えたいので、2番目の "y"( "not y" )はint型であると推論されます。
ocamlインタープリタ/コンパイラで既に説明した機能がすでに提供されているかどうか教えてください。
一般的に言えば、ocaml toplevelまたはそのインタプリタは、入力エラーの原因をより効率的に見つけるためにユーザーが取り出せる部分的に推定される型を生成できますか?
この質問は、部分的に推論された型アノテーションの非一意性のため意味をなさないかもしれません。しかし、この例の例では、少なくともいくつかのケースでは、部分的に推論された型の中には、その使用法があることを示す必要があります。
ありがとうございます。