- 721 名前:デフォルトの名無しさん mailto:sage [2012/02/27(月) 21:39:35.38 ]
- forall の話が出たんで、理解をより深めようと調べてたんだけど、
en.wikibooks.org/wiki/Haskell/Existentially_quantified_types このページで分からない部分がある [Explaining the term existential] のセンテンスの 「But we got almost the same behaviour above using datatypes. Let's declare one.」 の直前まではなんとか分かった forall = 積集合 exists = 和集合(Haskell の構文には無い) というのも、納得はできないが、とりあえずそういうものだと見なす事にする で、そのすぐ下の「MkT :: forall a. a -> T」 の意味を説明している部分がよく分からない これまでの話の流れからすると、forall a. (a -> T) というのが、 どういう型(を意味する集合)の積集合になるかを考えれば良いんだよな つまり、 Int -> T という型を意味する集合が持つ要素 String -> T という型を意味する集合が持つ要素 ・・・ などに共通する要素だけを持つ型が forall a. a -> T なんだよな ここまでは合ってる? で、その共通する要素って、ボトム以外に具体的にどういうものがあるのかな と考えてみると・・・ よく分からない 「何かを入力して型 T の値を得る関数」というのがそれかなと初め思ったけど、 じゃあこれは例えば「Int -> T という型を意味する集合が持つ要素」に含まれているのか と考えると、なんか違う気がする
|

|