タグ

ブックマーク / blog.kzfmix.com (2)

  • Haskellの入門書に型推論の話題が含まれていないのはなんでだろう?

    最近やったことを振り返ってみると ランク2多相とかランクN多相を理解する Haskellの関数従属とは「ある型が決まれば別の型が一意に決まる」という依存関係のこと Haskellの一般化代数データ型(GADT) HaskellのType Familiesがわからんよ(改めわかった) 型推論のための知識ばかりじゃないかと。メタな知識がないとまともなコード書けないってことか、コード書くのには必要ない余計な知識を詰め込んだのか(多分前者だと思うけど)。 Haskell の型システムは2つの重要 な特性を発揮します。ひとつめは、正しく型付けされた式はいづれも唯一の主型 (これについては下で説明します)を持つことが保証されるということです。ふた つめはこの主型は自動的に推論できるものであるということです(§4.1.3)。Cのように単 態型を用いる言語と比較すると、多相性のある言語では表現力がアップし

    Haskellの入門書に型推論の話題が含まれていないのはなんでだろう?
  • perlの0e0は真だけど0

    HOP3章終了。 "0e0"の使いどころがなかなか。 論理演算 $ "0e0" || 1 0e0 $ 0 || 1 1 真と判定、で演算してみる。 $ "0e0" * 5 0 $ "0e0" + 5 5 $ "0e0" - 5 -5 数値だ $ "0e0" == 0 1 $ "0e0" eq 0 論理演算で真を返すのに0 で、これがどう便利かというと $cached{$key} ||= make_cache($key) キャッシュに0が入ってる場合偽と判定されてしまい、キャッシュがあるのに再計算してしまうのだけど"0e0"を入れておくときちんとキャッシュが効くと。

    perlの0e0は真だけど0
    terazzo
    terazzo 2011/06/15
  • 1