ocaml
プロジェクトに取り組んでいるときに、よくわからないものを見つけました。
OCaml 標準ライブラリのArray
とモジュールの両方を使用しているとします。List
どちらも関数を実装していますlength
が、型が異なります。List
モジュールでは、これはそのタイプです:
length: a' list -> int
Array
モジュールでは、次のタイプがあります。
length: a' array -> int
open
しかし、キーワードを使用して、実装していた同じモジュールで両方のモジュールを使用したかったのです。
open List
open Array
リストで関数を使用しようとすると、length
コンパイル中に型エラーが発生しました。
OCaml は強力な静的型付け言語であるため、両方を使用していると宣言したのに、リスト モジュールの長さ関数が必要であることをコンパイラが認識しなかったのはなぜでしょうか。