「動的型」「静的型」「型推論」「(型)安全(性)」等の用語は混乱が多いようなので、前に(僕が知る限りのことを)まとめてみたのですが、またちょっと立て続けに混乱を目撃してしまったので少しだけ書いてみる。何か勘違いしていたらツッコミplz。 プログラムの実行前に型検査をする「静的型つき言語」(statically typed languages)には、型注釈が必須な「陽な型つき言語」(explicitly typed languages)と、省略しても型推論される「陰な型つき言語」(implicitly typed languages)の二つがあります。前者はCとかJavaとかで、後者はMLとかHaskellとかです。MLやHaskellは「陰な型つき関数型言語」ですが、さらにOCamlは「陰な型つきオブジェクト指向言語」にもなっていて、結果としてstatically typedなのにduck