- 1 名前:デフォルトの名無しさん mailto:sage [2005/09/30(金) 01:34:05 ]
- C/C++>>>>(越えられない壁)>>>Haskell
- 730 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:07:19 ]
- /-─-,,,_: : : : : : : : :\
/ '''-,,,: : : : : : : :i /、 /: : : : : : : : i ________ r-、 ,,,,,,,,,,、 /: : : : : : : : : :i / L_, , 、 \: : : : : : : : :i / 圏論持ち出したら /●) (●> |: :__,=-、: / < 負けかなと思ってる l イ '- |:/ tbノノ \ ニート(24・男性) l ,`-=-'\ `l ι';/ \ ヽトェ-ェェ-:) -r'  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヾ=-' /
- 731 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:26:09 ]
- >>730
博士課程のニーとですがなにか
- 732 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 16:39:00 ]
- 数学の知識無しでアローをAAで説明出来んじゃなかったの?
しったかかw クマーktkr
- 733 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:23:29 ]
- スレの流れに
水を差すようで申し訳ないんだが ちょっと質問 >>720 にある「(対称)前モノイダル圏」って よく意味が解らない 対称モノイダル圏の条件を弱めたものらしけど 対称モノイダル圏だとなにか不味い事でもあるのですか
- 734 名前:733 [2008/01/06(日) 17:25:08 ]
- >>720
でなく >>710だた
- 735 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:38:01 ]
- アローなんて簡単だろ
ほれ、これがアローだ →
- 736 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:51:02 ]
- これの事でしょうか?ハァハァ
/⌒ヽ⌒ヽ Y 八 ヽ ( __//. ヽ,, ,) 丶1 八. !/ ζ, 八. j i 丿 、 j | 八 | | ! i 、 | | i し " i '| |ノ ( i i| ( '~ヽ ! ‖ │ i ‖ | ! || | │ | | | | | | | | | | ! | | | | ‖ / ヾ
- 737 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:53:24 ]
- AA職人がいなくなってつまんなくなったね。
- 738 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:54:47 ]
- AA職人というか、コピペで説明してただけだろ?
- 739 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:57:34 ]
- その「説明してただけ」すら出来ないコピペ厨w
- 740 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:58:38 ]
- たしかに1年でレベルが落ちたのは否定できんなw
- 741 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 17:59:42 ]
- 単にスレが捨てられただけでは?
- 742 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:00:42 ]
- いまどきarrowなんてみんな知ってて、いまさら説明の余地もない。
新しいネタ探して来い
- 743 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:14:58 ]
- >>742
こら!みんなが矢印とかちんぽを無視したからって怒るでないw
- 744 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:17:28 ]
- クマーってもう一年前の話か。上のほう見たら2つもあるね。
- 745 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:19:22 ]
- >>742
↑とアローの説明が出来ないクズが取り乱しております
- 746 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:27:48 ]
- >>728
コンビネータ理論を知っていれば十分で数学の知識を前提としないって?おいおい。 支離滅裂だぞ。
- 747 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:44:24 ]
- >>746
数学の基礎的な知識はそれほど必要ないだろ。 「それだけ」知ってればいいんだから。
- 748 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:55:31 ]
- >>747
基礎の意味が違うでしょ。コンビネータ理論は数学基礎論であって、数学の基礎知識じゃない。 しかも副作用についての知識は、いくつかのコンビネータを知ってるではすまない。 他にも山のようにある関数について、一つ一つ個別に知ってるよりも理屈を知ったほうが当然良い。
- 749 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 23:51:52 ]
- λλλλλ...
↑アロー・モナド・コンビネータ理論について行けず、肩を落として帰るプログラマの群れ
- 750 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:08:05 ]
- 正直arrowとかどうでもいい
それよりhere documentを入れてくれ
- 751 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 00:29:30 ]
- >>750
ttp://cvs.haskell.org/Hugs/pages/users_guide/here-documents.html
- 752 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 20:07:34 ]
- >>733
くわしくはこのページが参考になる。 ttp://d.hatena.ne.jp/m-hiyama-memo/searchdiary?word=*%5B%A5%E2%A5%CA%A5%C9%5D John Power & Edmund Robinsonによれば: * TのKleisli圏C_Tがプレモノイド圏となる ⇔ Tは強度を持つ * TのKleisli圏C_Tがモノイド圏となる ⇔ Tは可換強度を持つ これはKleisli圏のプレモノイド構造と強度が1対1に対応しているということで、モノイド圏では都合が良くない。つまり、 プレモノイド圏となる⇒・・・⇒モナドの作用乗法 というのがwell-definedになるということを狙ってる。たしかにモナドって数学的な基礎知識無しでも使えると確信しましたか?
- 753 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 20:44:58 ]
- 当然だけど、アローについても同様の議論が展開できる訳です。まあ、アローなんかどうでも良いんでしたね。
- 754 名前:デフォルトの名無しさん [2008/01/07(月) 22:52:18 ]
- モノイド圏とモノイダル圏て何が違うの?
- 755 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 23:07:53 ]
- >>752
乙。>>710あたりが言ってた図を書くって「ペースティング図、スタック図(Santiago graphical notation)、ストリング図で描く・・・」てことか。 おれも>>735みたいなのをアローと思ってたw
- 756 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 23:13:13 ]
- >>754
Monoidal Category = モノイド圏 >>733しかモノイダル圏という日本語は使っていないと思う。普通、モノイド圏と呼ぶ。
- 757 名前:デフォルトの名無しさん [2008/01/07(月) 23:44:59 ]
- >756 thx
ところで、圏でのモナドは分かるんですが、 プログラム言語のモナドって何なんですか?
- 758 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:30:05 ]
- 検索しましたら次の資料が見つかり自己解決しました。
www.ipsj.or.jp/07editj/promenade/4703.pdf
- 759 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 00:33:47 ]
- >>757
ほい ttp://www.sampou.org/haskell/tutorial-j/monads.html HaskellのモナドはMonadという型クラスのインスタンスれす。 Monadクラスは2つのクラスメソッドを持っていて、その2つがモナド則(3ホーソクありゅ)を満たしてマース。 よく使うモナドはIO, Maybe, Listあたりでしょう。どれも「演算」を繋ぐという感じに使いマース。 この3行を見たらリンク先にJUMP! 2つのクラスメソッドは、最初のうちは『>>=』が『|』(パイプ)に対応、『return』が『cat』に対応すると覚えておけば良いかもネ! (Jonesはわざとパイプっぽくしたらしいネ) モナドの構文は3つ。doとletとifだけ。 演算をモナド的に定義して繋ぐと、新しい特徴を参照透過的にモナドに結びつけることが出来ちゃう。 しかもモナド則3が保証するように「組み立て順序が自由」で、長くつながったモナドの鎖のどこを切ってもモナドになるョ。 これがモナドがもたらすモジュール化という効能だよーん。
- 760 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 01:11:34 ]
- >759 おおDankeです
プログラムにはなかなか深い数学が隠れているんですね。 いまふと思ったんですが、物理に出てくる量子化という 概念も、もしかするとモナドに関係あるかも知れません。 モジュラリティが何を意味するのかよく考えてみます。
- 761 名前:デフォルトの名無しさん [2008/01/08(火) 21:02:22 ]
- ここの説明もなかなかおもしろいよ。
blogs.dion.ne.jp/keis/
- 762 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:15:53 ]
- >>761
宣伝乙
- 763 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 21:40:15 ]
- >>759
doとletは分かるけど、ifってモナドと関係あったっけ?
- 764 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:36:51 ]
- >>761
説明が間違ってるところ大杉。 自分でモナドを作る時、どうするつもりかと思った。
- 765 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:45:48 ]
- >>763
do と if を一緒に使う話じゃないかな。有名な「一行で書け」ってやつ。
- 766 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:55:16 ]
- >>761
パクったはいいが、意味を理解してなかった、ってところか。
- 767 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 09:22:24 ]
- >>761ってそんなに間違いが多いのか〜
どこからパクったのか分かりますか?
- 768 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 07:49:24 ]
- この年末年始のプログラマの休暇に
ここのスレが結構盛り上がっていたな
- 769 名前:デフォルトの名無しさん [2008/01/13(日) 08:07:15 ]
- プログラマは休暇にHaskellの勉強か
みんな偉いな
- 770 名前:デフォルトの名無しさん [2008/01/13(日) 10:35:26 ]
- どのへんがまちがってるの?
- 771 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 17:53:03 ]
- 勘違いしてるだけなんじゃない?
- 772 名前:デフォルトの名無しさん [2008/01/18(金) 04:18:25 ]
- なんだかんだ言って、本当はぜんぜん分かってない奴がほとんどだろw
- 773 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 09:45:24 ]
- まぁ仲間は多いと思っておきたいところだよな。
- 774 名前:デフォルトの名無しさん [2008/01/18(金) 15:35:54 ]
- >>761の間違いを早く指摘して欲しいもんだなw
- 775 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 15:37:06 ]
- >>774
そういってPV稼ぐ魂胆だろ 自演乙
- 776 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 15:18:10 ]
- こんなとこで宣伝したところで何PV増えるというのか
- 777 名前:デフォルトの名無しさん [2008/01/19(土) 18:53:04 ]
- >>775
そうやって自分が理解できてないのを誤魔化そうって魂胆だろ。 まずは>>761の間違いを指摘してみろよ。話はそれからだなw
- 778 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:02:10 ]
- ひとり暴れているのがいるみたいだね。誰も話したくないからって理解できないんだろうか。
- 779 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:31:52 ]
- いったいどこからパクったのか教えてくれよ。
- 780 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 13:54:12 ]
- >>779
どうでもいい
- 781 名前:デフォルトの名無しさん [2008/01/20(日) 18:21:29 ]
- どうでもよくないな。それによって>>761が間違いかどうか判断できるだろ。
- 782 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:01:14 ]
- その判断がどうでもいいと言っているんだよ
- 783 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:35:14 ]
- 1/8を最後にパッタリ流れが止まったのはなぜかな?
- 784 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:41:46 ]
- ヒント 自演
- 785 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 04:24:11 ]
- 結局Haskellって遅いの?
- 786 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 22:55:28 ]
- >>785
perlよかハエーよ スクリプトに使うなら無問題 組込系にはちょっと シビアなタイミングが求められるとダメポ
- 787 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 05:51:47 ]
- >>786
>組込系にはちょっと シビアなタイミングが求められるとダメポ 組み込みはどんな感じのアセンブリコードが生成されるのか予測しやすいほうがいいと思うんだが、 Haskell使いが慣れてくるとどういうasm吐くか割と簡単に把握できるようになるの?
- 788 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:33:33 ]
- >>786
Perlよかはやいとか到底考えられないのだけど、その根拠は?
- 789 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:35:05 ]
- >>788
ttp://shootout.alioth.debian.org/sandbox/benchmark.php?test=all&lang=ghc&lang2=perl だと 14 対 1 で Haskell が速い
- 790 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:53:31 ]
- 動的型でバイトコンパイルのPerlと、静的型でネイティブコンパイルのHaskellを比較して
Perlの方が速いと思うなら、そっちこそ説明が要るだろw
- 791 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:00:36 ]
- え〜Haskellって、ネイティブコンパイルしてるのか。それすら知らなかったわw
インタプリタだとばかり思ってた。
- 792 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:10:08 ]
- 両方可能だがね
- 793 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:34:52 ]
- インタプリタあるんだ、知らんかった
コンパイルしなくてもCGIとして使えるのかな 調べてみるか
- 794 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:39:19 ]
- あるかどうかは知らんが、可能ではあるだろう
- 795 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:44:38 ]
- runghcとかrunhugsとかあるけど、インタプリタをサーバに導入するほうが返って面倒な気もする
- 796 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 17:15:57 ]
- >>793
可能だよ
- 797 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:00:27 ]
- Haskellまだかじった程度だけど、参照透明性がなにかハッピーにしてくれるの?
やろうと思えば、既存の言語でも出来るわけで。言語的に制約がかかっているか どうかでしょ。「言語的に制約がかかる」というのは、入門者にとってしかメリット はないよ。 遅延評価も*ほぼ*使わない。無限計算なんてやらんよ? こんなんで、なんで既存言語から乗り換えるの?俺が、まだHaskellよくわかっていない だけ?
- 798 名前:デフォルトの名無しさん [2008/02/16(土) 23:01:19 ]
- あげ
- 799 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:07:18 ]
- 俺も初心者だけど、参照透明性の重用性がよくわからない。
つか、結局はunsafeなんとかで参照透明性をくずしてんでしょ?
- 800 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:08:04 ]
- ちなみにクソリストなんて採用するのはやめてくれ
- 801 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:08:40 ]
- >>797
C++ が参照透明な言語だって知ってた?
- 802 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:10:00 ]
- >>801
信じられない。あふぉかw 俺が、無知なら教えてくださいw
- 803 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:10:31 ]
- >>797
お前、今日のRuby勉強会に行ったやつだろ? なぜ関数プログラミングは重要か www.sampou.org/haskell/article/whyfp.html
- 804 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:11:05 ]
- 参照透明性って、再代入できないってことだよな(間違ったら訂正してくれ)
C++は再代入できる、とおれは思ってるがw
- 805 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:12:01 ]
- >>803
Rubyはすきだが、そいつじゃない。というか、今日一日ひきこもってたしなw
- 806 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:12:04 ]
- >>799
unsafeを使うときは注意が必要である いつ実行されてもプログラムに矛盾が発生しないことがはっきりしない限り使うべきではない
- 807 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:12:29 ]
- 式と値が一対一に対応していること
- 808 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:16:09 ]
- Haskellのメリットを説きたいなら>>803のリンク教えるだけで十分じゃねーの?
- 809 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:16:48 ]
- >>802,804
まずはこれを読んでみてくれ。 d.hatena.ne.jp/w_o/20061008#p1 これが面白いのは、参照透明は程度問題に過ぎないという 視点を得られる所なんだと思っている。
- 810 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:18:09 ]
- 参照透明性なんて飾りだよ
Haskellの魅力は、副作用が禁じられていることじゃなくて、 副作用なんていう扱いにくいものに頼らなくても自然にプログラムを書けることだ 遅延評価は大いに使う 「ほぼ使わない」なんて思えるのはHaskellに慣れてないだけだ 例えば、C言語の典型的なfor文の使い方 for(T i = init; cont(i); i = next(i)) use(i); を、Haskellで自然に書き直すと mapM_ use $ takeWhile cont $ iterate next init になるけど、これは無限リストを使っている
- 811 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:19:34 ]
- >>809
あなたはネタを理解できない人なんですね
- 812 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:23:05 ]
- 遅延評価便利だよ。
MLが不便に思えるぐらいだ。
- 813 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:23:13 ]
- >>811
ドッキリとかを真に受けるタイプの人でしょ? >>809 がネタなんだけどね
- 814 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:26:29 ]
- >>799
unsafeなんとかは、本当は参照透明なのに、コンパイラが参照透明だと見なしてくれない式を書くときに使う そうじゃない使い方もできるけど、それは邪悪な使い方だ
- 815 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:28:06 ]
- ffi使えばunsafe使わなくてもいくらでも邪悪なプログラムが書けるぜ。
- 816 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:28:41 ]
- HaskellのFFIはめちゃくちゃ楽だからな。
組み込みプログラムもなんのその。
- 817 名前:799 mailto:sage [2008/02/16(土) 23:41:48 ]
- >>803 >>808
803のリンクは、 「参照透明は関数型言語の魅力としては不適当」と言っているのでは?
- 818 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:47:33 ]
- >>816
オーバーヘッドもあるしメモリも食いまくるから組み込みには全く向かないだろ
- 819 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:54:08 ]
- >>818
関係ない。 組み込み=低リソースという時代は終わったんだよ。 それよりも、たとえばロケットや自動車のような用途では安全性が求められる。
- 820 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 23:57:18 ]
- >>817
参照透明でなければ遅延評価は役に立たないよ
- 821 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:00:21 ]
- D 言語に遅延評価もどきはあるけどな。
- 822 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:02:57 ]
- 遅延評価はテクニックに近いものもあるしな
- 823 名前:799 mailto:sage [2008/02/17(日) 00:06:23 ]
- >>820
なるほど…。 でも、遅延評価も必ず使うわけではないし、 (IOの時など遅延評価されては困る場合もあるわけですよね?) なんというか、参照透明そのものの優位性がわからない…。 ・コンパイラが作りやすい? ・数学的にみて美しい? …、いずれも一般ユーザには関係ないですよね…。
- 824 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:07:34 ]
- 参照透明性ってデバッグの容易さの点で重要と聞いてるけど。
- 825 名前:799 mailto:sage [2008/02/17(日) 00:08:33 ]
- >>814
う〜ん…。これは正しいのでしょうか? あくまでも、Haskellは参照透明であって、 そうでないプログラムは邪悪という事ですよね。
- 826 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:11:43 ]
- >>823
参照透明だったら関数の返値をキャッシュできるよ
- 827 名前:799 mailto:sage [2008/02/17(日) 00:14:55 ]
- >>826
コンパイラの話ですよね…。
- 828 名前:799 mailto:sage [2008/02/17(日) 00:16:41 ]
- >>824
Haskellのデバッグってむしろ大変そうですけど…。
- 829 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:18:15 ]
- >>827
完全にキャッシュできればプログラマはわざわざメモ化とかのテクニックを使ってプログラミングする必要がなくなる。 ・・・とは言うものの、GHCでは完全にキャッシュしているわけではない。
- 830 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 00:19:45 ]
- >>828
Cのデバッグで一番骨が折れるのが型によるバグ。 Haskellはコンパイルさえ通れば型に関しては完全に矛盾がない。
|

|