タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

存在型に関するclouds-across-the-moonのブックマーク (4)

  • Haskell/存在量化された型 - Wikibooks

    存在型 (Existential types もしくは短く existentials) は型の集合をひとつの型へと圧縮する方法である。 最初に注意してくことがある。 存在型は GHC の 型システム拡張 の一部である。これらは Haskell98 の一部ではなく、-XExistentialQuantification という追加のコマンドライン引数をつけるか、{-# LANGUAGE ExistentialQuantification #-} をソースコードの先頭に置くかして、コンパイルしなければならないだろう。 forall キーワード[編集] forall キーワードは明示的に型変数をスコープに持ってくるのに使われる。たとえば、これまで次のように書かれているのは何度も飽きるほど見てきただろう。 しかし、これらの a と b は何なのだろうか?まあ、これらは型変数だ、とあなたは答えるだろ

  • はてなブログ | 無料ブログを作成しよう

    ハリイカの焼売と中華炒め ハリイカをよく、見かけるようになりましたよ。生け簀で、泳いでいたものを一杯購入しました 立派な大きな墨袋や肝は冷凍保存して 柔らかな身は季節のお豆、お野菜と合わせて中華の炒めものに。新鮮なにんにくの茎は刻み、香り高く欲そそられますね 下足はミンチにし…

    はてなブログ | 無料ブログを作成しよう
  • 存在型を全称限量子と代数的データ型でエンコードする - maoeのブログ

    HaskellのGHC言語拡張に含まれる存在型は、existential quantifierを使わずにuniversal quantifierと代数的データ型を組み合わせて表現されます。以前からどうしてこんなことができるのかと思っていたのでそのカラクリを調べてみました。 GHC言語拡張では存在型を次のように定義できます。 {-# LANGUAGE ExistentialQuantifications #-} data Q = forall x. P x このように型引数を取らないデータ型のデータ構成子に、全称量化された変数を持つような型を定義します。この定義は直接existential quantifierを使えば次のように表現できるものです。 -- 疑似Haskell。GHCではコンパイルできない。EHCならできるかも。 data Q = P (exists x. x) データ構成子の

  • 存在型 (Existentially quantified data constructors) | tnomuraのブログ

    Haskell の存在型というのは一体どういう意味なのだろうか。文字列型や整数型なら意味がわかる。しかし、存在型の存在という言葉にどんな意味がこめられているのか見当もつかない。 探し回っていたら、GHCのマニュアルの 7.4. Extensions to data types and type synonyms というページを見つけた。このページの 7.4.5. Existentially quantified data constructors に存在型の説明が書いてあった。これを読んだら疑問が氷解した。どうも存在型 (Existetial type) の「存在 (Existential) 」というのは、述語論理学の存在量化子の「存在」らしい。たとえば、「ある自然数 n について、n * n は25である」という命題を述語論理学の記号で書くと下のようになる。 ∃n (n ∈ N, n *

    存在型 (Existentially quantified data constructors) | tnomuraのブログ
  • 1