HaskellとScalaの依存型に関する多くの情報があります。 OCamlのために、それほど多くはありません。誰でもOCamlでこれを達成するためのコーディング例を提供するのに十分な熟練者ですか(それが可能ならば)?もちろん(放棄された)Dependent MLがありますが、このようなものを「通常の」OCamlコードに組み込むことはできないようです。OCamlの依存型
基本的には、assert(n > 0)
のようなコードを削除し、コンパイル時にチェックします。サイドノートとして
EDIT
、それが依存型システムのニーズの一部を埋めることができることを、OCamlのHybrid Contract Checking枝を言及する価値があります。代わりにassert(n > 0)
のあなたは、その後の契約を記述します。
contract f = {x : x > 0} -> int
let f x = x + 1
let dummy_variable = f (-1) (* Won't compile *)
「これはHaskellとScalaの依存型に関する多くの情報」ですか?ハスケルコミュニティの合理的な概要を持っているにもかかわらず、あなたが何を指しているのか分かりません。 (私は間違いなく、[Dependently-Typed Haskell](http://www.cis.upenn.edu/~sweirich/)のUPennの作業を関連性のあるものと考えるだろうが、それは実用的ではなく非常に研究的であり、 )。私はあなたがScalaのために何を考えているのか分かりません - パス依存の型との関係を除いては? – gasche
ええと、私は考えていた。たぶん私はScalasパス依存型にだまされていたかもしれません。 –