関数型プログラミング言語Haskell Part17
■ このスレッドは過去ログ倉庫に格納されています
0721デフォルトの名無しさん
2012/02/27(月) 21:39:35.38http://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 という型を意味する集合が持つ要素」に含まれているのか
と考えると、なんか違う気がする
■ このスレッドは過去ログ倉庫に格納されています