[過去ログ]
関数型プログラミング言語Haskell Part16 (978レス)
関数型プログラミング言語Haskell Part16 http://echo.5ch.net/test/read.cgi/tech/1317958045/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
796: デフォルトの名無しさん [sage] 2011/12/23(金) 18:06:55.65 いつもの糖質が現われる頃合いだな http://echo.5ch.net/test/read.cgi/tech/1317958045/796
797: デフォルトの名無しさん [sage] 2011/12/23(金) 18:16:45.13 >>795 Control.Monadにあるようなものは抽象化できるし、 (Monad m) =>で書けなさそうなものは抽象化できない 言葉で言われて分かる類の問題じゃないから具体例を見たり書いたりして慣れるしかないよ >モナドで抽象する前と後とで何が変わるの? 関数の型が変わって任意のモナドに対して使えるようになる。たとえば、 foreach :: [a] -> (a -> IO ()) -> IO () -- foreach xs f はxsの各要素に対してfを実行 をモナドに関して抽象化すれば、 forM_ :: (Monad m
) => [a] -> (a -> m b) -> m () になって、IO以外でも使えるようになる http://echo.5ch.net/test/read.cgi/tech/1317958045/797
798: デフォルトの名無しさん [sage] 2011/12/23(金) 18:19:11.21 抽象化できないものの証明って難しいな。もうあるのだろうか。 http://echo.5ch.net/test/read.cgi/tech/1317958045/798
799: デフォルトの名無しさん [sage] 2011/12/23(金) 18:22:51.88 いい例かどうか分からないが http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html http://www.haskell.org/haskellwiki/Monads_as_containers http://www.haskell.org/haskellwiki/Monads_as_computation http://echo.5ch.net/test/read.cgi/tech/1317958045/799
800: デフォルトの名無しさん [sage] 2011/12/23(金) 18:24:52.49 コードが書いてあるあたりだけでもざっと見ればいいよ http://echo.5ch.net/test/read.cgi/tech/1317958045/800
801: デフォルトの名無しさん [] 2011/12/23(金) 18:26:57.57 >>797 サンクス http://echo.5ch.net/test/read.cgi/tech/1317958045/801
802: デフォルトの名無しさん [sage] 2011/12/23(金) 18:32:22.82 >>797 それってオブジェクト指向でメソッドの引数の型を IO型からObject型にするのと、どう違うの? http://echo.5ch.net/test/read.cgi/tech/1317958045/802
803: デフォルトの名無しさん [sage] 2011/12/23(金) 18:47:13.75 メソッドの引数に限定する意味が良くわからないが bindとかreturnというメソッドを持ったIO型を一般化して、 Monadという抽象クラスから派生するようにしたら便利なのと一緒。 http://echo.5ch.net/test/read.cgi/tech/1317958045/803
804: デフォルトの名無しさん [sage] 2011/12/23(金) 18:53:48.59 >>802 色んなものの「共通する性質」や「共通する関係」を抜き出し、 具体的な実態では無くその性質や関係のみで以て語るのが「抽象化」だから、 抽象化するという意味は同じ どう抽象化するかという点で、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型がどういう性質の抽象化なのかは忘れた http://echo.5ch.net/test/read.cgi/tech/1317958045/804
805: デフォルトの名無しさん [sage] 2011/12/23(金) 18:59:26.87 なんかHaskellPlatform DLできないんだけど鯖どうなってんこれ http://echo.5ch.net/test/read.cgi/tech/1317958045/805
806: デフォルトの名無しさん [] 2011/12/23(金) 19:27:53.45 >>799 ありがとう。読んでみる。 http://echo.5ch.net/test/read.cgi/tech/1317958045/806
807: デフォルトの名無しさん [sage] 2011/12/23(金) 19:37:49.40 >>802 その例だと、内部でやってることもだいたい同じ 実際の型に応じて実装が選ばれる 実装を選ぶタイミングがコンパイル時か実行時かは違う 型クラスは ad-hoc polymorphism を使いやすくしたものでオーバーロードの親戚 OOPのほうはsubtype polymorphismといって、部分かなり違う部分がある 例えばsubtype relationが推移律をみたすみたいな強い性質がある subtypeがあるとどうなるかは、Scalaが壮大な社会実験中 http://echo.5ch.net/test/read.cgi/tech/1317958045/807
808: デフォルトの名無しさん [sage] 2011/12/23(金) 20:08:50.39 Objectにしたらキャストがいるよね interface Monadみたいの定義しないと http://echo.5ch.net/test/read.cgi/tech/1317958045/808
809: デフォルトの名無しさん [sage] 2011/12/23(金) 21:29:18.89 抽象化と言うか普遍化だな。 http://echo.5ch.net/test/read.cgi/tech/1317958045/809
810: デフォルトの名無しさん [sage] 2011/12/23(金) 21:51:15.90 同じ事やねんで http://echo.5ch.net/test/read.cgi/tech/1317958045/810
811: デフォルトの名無しさん [] 2011/12/23(金) 21:51:38.33 モナドって、ひょっとしてHaskellにおけるデザインパターンのことかい? http://echo.5ch.net/test/read.cgi/tech/1317958045/811
812: デフォルトの名無しさん [] 2011/12/23(金) 21:52:28.95 >>809 ラムダ抽象の抽象? http://echo.5ch.net/test/read.cgi/tech/1317958045/812
813: デフォルトの名無しさん [sage] 2011/12/23(金) 21:58:23.43 >>811 モナドの方が抽象度高いけど似たようなもん(だと思ってる) http://echo.5ch.net/test/read.cgi/tech/1317958045/813
814: デフォルトの名無しさん [sage] 2011/12/23(金) 21:59:35.27 普遍化というのはある特定の性質から全体の性質が定まるようにすることで、 単なる抽象化とは違うだろ。 http://echo.5ch.net/test/read.cgi/tech/1317958045/814
815: デフォルトの名無しさん [sage] 2011/12/23(金) 22:03:10.73 デザインパターンが何を指しているのかわからない。 http://echo.5ch.net/test/read.cgi/tech/1317958045/815
816: デフォルトの名無しさん [sage] 2011/12/23(金) 22:04:44.75 【普遍化】個別的・特殊なものを捨て、共通なものをとり出すことによって概念や法則などを引き出すこと。 【抽象化】対象から注目すべき要素を重点的に抜き出して他は無視すること。 http://echo.5ch.net/test/read.cgi/tech/1317958045/816
817: デフォルトの名無しさん [sage] 2011/12/23(金) 22:14:01.93 よかったな。 http://echo.5ch.net/test/read.cgi/tech/1317958045/817
818: デフォルトの名無しさん [sage] 2011/12/23(金) 22:21:35.79 どっちでも良いと思うけど、性質を式にするような場合は一般化(普遍化)のほうがしっくるくるよね http://echo.5ch.net/test/read.cgi/tech/1317958045/818
819: デフォルトの名無しさん [] 2011/12/23(金) 22:31:42.28 >>815 あのGoFのデザインパターンがその代表だが。 >>813 そうか。そうならデザインパターンと同じくつまらんものだ。 長くは続かん。 >>816 >>818 もっと乾いた理解をしないといかんのじゃないか? http://echo.5ch.net/test/read.cgi/tech/1317958045/819
820: デフォルトの名無しさん [sage] 2011/12/23(金) 22:43:16.57 >>819 > そうか。そうならデザインパターンと同じくつまらんものだ。 > 長くは続かん。 2ch で質問して、たった1個のレスでそんなに早く結論を得た気になるなんて ほんと馬鹿としか言いようがない このまま行くと、お前は一生その考えなんだろうなぁ http://echo.5ch.net/test/read.cgi/tech/1317958045/820
821: デフォルトの名無しさん [sage] 2011/12/23(金) 22:45:15.16 そもそもデザインパターンがつまらんという感覚が良く分からない http://echo.5ch.net/test/read.cgi/tech/1317958045/821
822: デフォルトの名無しさん [sage] 2011/12/23(金) 23:03:06.92 うむ。つまるとかつまらんてものではないわな http://echo.5ch.net/test/read.cgi/tech/1317958045/822
823: デフォルトの名無しさん [] 2011/12/23(金) 23:04:36.28 >>820 2ch http://echo.5ch.net/test/read.cgi/tech/1317958045/823
824: デフォルトの名無しさん [sage] 2011/12/24(土) 00:21:37.64 つまらない物だということにして安心したいんだよ そうすれば理解する努力しなくていいから http://echo.5ch.net/test/read.cgi/tech/1317958045/824
825: デフォルトの名無しさん [sage] 2011/12/24(土) 00:50:28.05 理解できない自分の頭を嘆く必要もなくなるし。 http://echo.5ch.net/test/read.cgi/tech/1317958045/825
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 153 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.013s