ブックマーク / camlspotter.hatenablog.com (2)

  • CamlP4 が何やっているか知りたいときどうするか - camlspotter’s blog

    一番よいのは CamlP4 が何を出力しているか見ることです。 例として OCamltter の Twitter API の JSON 表現と OCaml の型との間を取り持つ api11.ml がどうなっているか見てみましょう。 type 'a t = { previous_cursor : Json.t; next_cursor : Json.t; next_cursor_str : string; previous_cursor_str : string; contents : 'a mc_embeded; } with conv(json, ocaml) この型宣言の with conv(json, ocaml) の部分は CamlP4 の拡張の部分で、型定義からなにかしらコードを生成しています。 $ rm lib/twitter/api11.cmo $ omake --verbo

    CamlP4 が何やっているか知りたいときどうするか - camlspotter’s blog
  • 静的型と OO というものははじめから… - camlspotter’s blog

    OO の方面から、「静的型とか別に役に立つとは思えない、静的型の人は頭おかしい」 とか関数型の方面から、「静的型が役に立たないなんてはずない OO の人は頭おかしい」 とか良く聞こえてくるんですが、ダックタイピング心理学 とかいう真に頭おかしい意見を無視できるとすると(無視できない量あるんですが)、まあ私にはどっちもわからんでもない、という話です。 型をゴミ箱に捨てておいてから、後でゴミ箱を漁るなら、型なんかいらない オブジェクトの静的型システムを大雑把にいうとまず upcast と downcast があります。 upcast はオブジェクトの静的型をそれが属するクラスからそのスーパークラスにを変えちまうこと、downcast はその逆、オブジェクトの静的型をそれが属するクラスから子クラスに変えちまうことです。サブクラスの物はスーパークラスとしても通用するはずですから upcast は失

    静的型と OO というものははじめから… - camlspotter’s blog
    mmohei
    mmohei 2014/05/05
  • 1