関数型プログラミング言語Haskell Part16
■ このスレッドは過去ログ倉庫に格納されています
0804デフォルトの名無しさん
2011/12/23(金) 18:53:48.59色んなものの「共通する性質」や「共通する関係」を抜き出し、
具体的な実態では無くその性質や関係のみで以て語るのが「抽象化」だから、
抽象化するという意味は同じ
どう抽象化するかという点で、IO型からObject型へとMonadへとで違いがでる
Haskell のモナドは (m を Monad クラスのインスタンスとして)
forall a b. m a -> (a -> m b) -> m b
forall a b. m a -> m b -> m b
a -> m a
String -> m a
という4つの「演算で抽象化」してる(うち2つだけで十分だが)
特にモナド同士の演算がまたモナドになるという性質と、
モナドの外からはモナドの具体的な実態は見えないという性質が特徴的だから、
そういう性質が活かせるところでもてはやされる
オブジェクト指向のObject型がどういう性質の抽象化なのかは忘れた
■ このスレッドは過去ログ倉庫に格納されています