タグ

ブックマーク / keigoi.hatenadiary.org (2)

  • Haskell+GADTで定理証明 その1: 型レベル自然数の等価性 - keigoiの日記

    実は、私のfull-sessionsというセッション型のライブラリは中で unsafeCoerce#を使っているので型安全でない。使ってくれる人にとってそれは心もとないだろうし、そもそもunsafeなんとかは、いけがみさんによればSPJとSimon Marlowしか使ってはいけないことになっているらしい。やっぱりHaskellを使うものとして型安全性くらいは保証したい。でも、かといって普通のHaskellではうまく型を付けられない。(Typeableクラスのキャストを使っても解決にはならない。) そこで、魔法のGADT。 この型とこの型はぜったい等しいのにーというのが文脈から明らかなとき、それを表現できるのがGADTだ…というのが私の理解。まさしく私のケースにぴったりだ。これを使えばunsafeCoerceなんか要らんかもしれない。 いいかえれば、いわゆる定理証明をGADTつきのHaske

    Haskell+GADTで定理証明 その1: 型レベル自然数の等価性 - keigoiの日記
  • Haskell厨を6年やってる俺がOCamlを仕事で2ヶ月使ってみた - keigoiの日記

    Haskell Advent Calendar jp 2010のためのエントリです(17日目). 6日目の id:camlspotterさんの 経験15年のOCaml ユーザーが Haskell を仕事で半年使ってみた に対するカウンター(になってるかどうか分からないですが)みたいな感じです. 近くて遠い隣人:HaskellとOCaml OCamlはHaskellと違って副作用があり,更にHM型推論をもつためプログラマは質的な部分の記述に注力しつつ,コードのチューニングもできる. つまり働くHaskellプログラマがシリアスなソフトウェアを書く時に使えるほとんど唯一の選択肢だ.しかし,同じ静的型付けの関数型言語でありながら,OCamlとHaskellの見た目はかなり異なる. この記事では, HaskellプログラマがOCamlを使い始めると,どういうトラップにハマるかを書く. なかでも,

    Haskell厨を6年やってる俺がOCamlを仕事で2ヶ月使ってみた - keigoiの日記
  • 1