ocaml では、次のようになっているとします。
type t = A of int | B of string
let x = [A 5; B "y"]
次に、リストを反復し、match ステートメントを使用して A または B をどうするかを決定します。
Java では、次のようにすることができます。
ArrayList<Object> x = new ArrayList<Object>();
x.add(new Integer(5));
x.add("y");
配列リストの反復では、instanceof と downcast を実行してデータを処理する必要があります。
内部的に、ocaml は実行時の型情報を Java として保持し、型マッチング ステートメントは Java instanceof-downcast のように機能しますが、型は安全であるというのは本当ですか?
if (element instanceof Integer) {
String e = (String) element;
}